public class ThreadTest {
private int J;
+1
Private synchronized void Add () {
j + +;
System.out.println (Thread.CurrentThread (). GetName () + "add:" +j);
}
-1
Private synchronized void sub () {
j--;
System.out.println (Thread.CurrentThread (). GetName () + "sub:" +j);
}
Add thread
Class Add implements runnable{
public void Run () {
for (int i=0;i<10;i++) {
Add ();
}
}
}
Subtract threads
Class Sub implements runnable{
public void Run () {
for (int i=0;i<10;i++) {
Sub ();
}
}
}
public static void Main (string[] args) {
ThreadTest threadtest=new threadtest ();
Create 2 Thread classes
Add add=threadtest.new Add ();
Sub Sub=threadtest.new Sub ();
for (int i=0;i<2;i++) {
Thread thread=new thread (add);
Thread.Start ();
Thread=new Thread (sub);
Thread.Start ();
}
}
}
4 threads were designed, of which two threads increased by 1 for J each time, while the other two threads reduced by 1 for J at a time. Write the program.