我使用「for」循環生成100個線程來打印出數據0〜4。For循環生成的多線程不能使用同步?
public class ThreadTest implements Runnable {
static volatile int threadNum = 100;
public void run() {
synchronized (this) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " synchronized loop " + i);
}
}
}
public static void main(String[] args) {
for (int i = 0; i < threadNum; i++) {
ThreadTest t = new ThreadTest();
Thread t1 = new Thread(t);
t1.start();
}
}
}
我曾經希望爲每個線程獲取數據0〜4,因爲「synchronized」只允許一個線程操作「for」循環。但是,打印結果並不如我預期的那樣。
誰能幫我指向我們我的問題是什麼?謝謝〜
提示:避免張貼屏幕截圖。你的輸出是「純文本」;所以你簡單地複製/粘貼該文本會容易得多。 – GhostCat