【初心者】Java質問・相談スレッド76【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0240デフォルトの名無しさん
2005/12/01(木) 00:56:20以下のコードを実行すると、毎回必ず[1000]が出力される事を期待しているのに
何回か実行を繰り返していると、1000未満の数値が出力されます。
これは何故でしょうか?環境はjava1.5.0_5です
public class ThreadTest {
static volatile int c;
public static void main(String[] args) throws Exception {
Thread t0 = new MyThread();
//この間にt1〜t8もnewする
Thread t9 = new MyThread();
t0.start();
//この間にt1からt8もstart()する
t9.start();
t0.join();
//この間にt1からt8もjoin()する
t9.join();
System.out.println("[" + c + "]");
}
}
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 100; i++){ThreadTest.c++;}
}
}
■ このスレッドは過去ログ倉庫に格納されています