如果不行,那么谁知道在哪种CPU架构上可能会出现问题,就给予他们一些“码农点数”吧。
private int invoc = 0;
private synchronized void increment() {
invoc++;
}
public void isItThreadSafe() throws InterruptedException {
for (int i = 0; i < TOTAL_THREADS; i++) {
new Thread(new Runnable() {
public void run() {
// do some stuff
increment();
}
}).start();
}
while (invoc != TOTAL_THREADS) {
Thread.sleep(250);
}
}
invoc
的最新值(尽管由于increment()
方法上的synchronized
关键字而导致写入被刷新)。不过,我对Java内存模型还不够了解,无法确定。 - dlev