【发布时间】:2018-08-10 15:16:21
【问题描述】:
我试图了解classMember 的可能值是什么,即两个线程是更新,当我运行程序时,输出始终为 20,但我想了解它发生的原因以及最低限度是多少,最大值为classMember
public class TestClass {
public int classMember = 0;
private void updateCM() {
for (int i = 0; i < 10; i++) {
classMember++;
}
}
public static void main(String[] args) {
TestClass mainClass = new TestClass();
Thread t1 = new Thread(mainClass::updateCM);
Thread t2 = new Thread(mainClass::updateCM);
t1.start();
t2.start();
while(t1.isAlive() || t2.isAlive()) {}
System.out.println(mainClass.classMember);
}
}
【问题讨论】:
标签: java multithreading