質問内容
スレッドが交互に動くようにしたいのですが,notifyAll()がうまく動かせていないようで実行しても何も起こらないのですがなぜうまく動いてくれないかを教えていただきたいです.
コード
Java
1class CountTenE implements Runnable{ 2 int id=1; 3 static int sw=0; 4 CountTenE(int n){ 5 id=n; 6 } 7 public static void main(String[] args){ 8 (new Thread(new CountTenE(0))).start(); 9 (new Thread(new CountTenE(1))).start(); 10 } 11 12 public void run(){ 13 for(int i=0;i<10;i++){ waitAndPrint(i);} 14 } 15 16 synchronized void waitAndPrint(int i){ 17 try{ 18 while(sw==id) wait(); 19 }catch(InterruptedException e){} 20 21 System.out.println("Thread("+id+"):i="+i); 22 sw=id; 23 notifyAll(); 24 } 25}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 01:14
2020/07/20 01:34
2020/07/20 01:41
2020/07/20 01:53
2020/07/20 01:59
2020/07/20 02:23
2020/07/20 03:05
2020/07/21 02:18
2020/07/26 00:31