Tag: Sync run private read NTS start current string ring
Packagemultithread; Public classMyThread {//J Variable Private Private intJ; //+1 Methods of synchronization Private synchronized voidAdd () {J++; System.out.println (Thread.CurrentThread (). GetName ()+ "---------->" +j); } //Synchronized-1 method Private synchronized voidSubtract () {J--; System.out.println (Thread.CurrentThread (). GetName ()+ "---------->" +j); } //implements the internal addition class of the Runnable interface classAddImplementsrunnable{@Override Public voidrun () { for(inti = 0; I < 100; i++) {Add (); } } } //implement the internal class-reduction of the Runnable interface classSubtractImplementsrunnable{@Override Public voidrun () { for(inti = 0; I < 100; i++) {subtract (); } } } Public Static voidMain (string[] args) {//to create an instance of an outer class and an inner classMyThread MT =NewMyThread (); Add Add= Mt.NewAdd (); Subtract Subtract= Mt.NewSubtract (); //Loop start 4 threads for(inti = 0; I < 2; i++) {Thread T=NewThread (add); T.start (); T=NewThread (subtract); T.start (); } }}
Create 4 threads, two pairs J plus one, two pairs J minus one (J two in the same two)