public class ThreadTest {
private int j = 1;
+1
private synchronized void N () {
j + +;
System.out.println (Thread.CurrentThread (). GetName () + "N:" +j);
}
-1
Private synchronized void m () {
j--;
System.out.println (Thread.CurrentThread (). GetName () + "M:" +j);
}
Add thread
Private class N implements runnable{
public void Run () {
TODO auto-generated Method Stub
for (int i = 0; i < i++) {
N ();
}
}
}
Subtract threads
Private class M implements runnable{
public void Run () {
TODO auto-generated Method Stub
for (int i = 0; i < i++) {
M ();
}
}
}
public static void Main (string[] args) {
ThreadTest tt = new ThreadTest ();
Create 2 Thread classes
Thread t = null;
n n = tt.new n ();
M m = tt.new m ();
Start 4 Threads
for (int i = 0; I <2; i++) {
T=new Thread (n);
T.start ();
T=new Thread (m);
T.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.