思考,在不运行代码的得情况下,num 最终输出多少?
public class MyThread {
static volatile Integer num = new Integer(0);
public static void main(String[] args) {
for (int i = 0; i < 1000; i++) {
new Thread(() -> incry(num)).start();
}
try {
Thread.sleep(2000);
} catch (Exception ex) {
ex.printStackTrace();
}
System.out.println("num = " + num);
}
private static Integer incry(Integer num) {
try {
Thread.sleep(1);
} catch (Exception ex) {
ex.printStackTrace();
}
synchronized (MyThread.class) {
num ++;
}
return num;
}
}