"for"ループを使用して、データ0〜4を出力する100個のスレッドを生成します。Forループ生成されたマルチスレッドはsynchronizedを使用できませんか?
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の順序でデータを取得するために願っています。しかし、印刷結果は期待通りではありません。
は、誰も私には私の問題は、私たちが何であるかを指すように助けることができますか? 〜
ヒント:スクリーンショットの投稿を避ける。あなたの出力は「純粋なテキスト」です。そのテキストのコピー/ペーストを単純に行う方がはるかに簡単です。 – GhostCat