两个线程同时在给定程序中执行,但此代码每次都给出0个输出。为什么不更新计数值?如果两个线程同时执行,为什么我们没有获得count的更新值?
class ThreadA {
public static void main(String[] agrs) {
ThreadB t = new ThreadB();
t.start();
System.out.println(t.count);
}
}
class ThreadB extends Thread {
int count = 0;
public void run() {
for(int i = 0; i < 10; i++) {
count = count + i;
}
}
}
您打印前是否尝试插入'Thread.sleep()'? – SilverNak
如果我使用Thread.sleep(),那么它工作正常。但是,为什么在上面的代码中,count没有得到更新? –