class ThreadInc implements Runnable{
@Override
public void run() {
ThreadDemo.printInc(5);
}
}
class ThreadDec implements Runnable{
@Override
public void run() {
ThreadDemo.printDec(3);
}
}
public class ThreadDemo {
private static int j = 0;
public synchronized static void printInc(int num){
for(int i = 0 ; i<num ; i++){
j++;
System.out.println("in inc j == " + j + "      "+ Thread.currentThread().getName());
}
}
public synchronized static void printDec(int num){
for(int i = 0;i<num;i++){
j--;
System.out.println("in dec j == " + j + "      "+ Thread.currentThread().getName());
}
}
public static void main(String[] args) {
ThreadInc i = new ThreadInc(); 
ThreadDec d = new ThreadDec();
new Thread(i).start();
new Thread(i).start();

new Thread(d).start();
new Thread(d).start();
}
}输出结果为:
in inc j == 1      Thread-1
in inc j == 2      Thread-1
in inc j == 3      Thread-1
in inc j == 4      Thread-1
in inc j == 5      Thread-1
in dec j == 4      Thread-3
in dec j == 3      Thread-3
in dec j == 2      Thread-3
in inc j == 3      Thread-0
in inc j == 4      Thread-0
in inc j == 5      Thread-0
in inc j == 6      Thread-0
in inc j == 7      Thread-0
in dec j == 6      Thread-2
in dec j == 5      Thread-2
in dec j == 4      Thread-2为什么执行完第一个new Thread(i).start();之后不执行第二个new Thread(i).start();
启动多个线程之后 是由OS决定执行哪个线程么
谢谢