以下のコードでは、以下のように、黒と赤の番号プリンターを期待どおりに作成する方法を教えてください。
- 1(黒)
1(赤)
2(黒)
2(赤)
それが実際に行うこととは対照的に(エラーストリームまたは出力ストリームが利用可能かどうかに応じて、ランダムな順序があります):
- 1(黒)
2(黒)
1(赤)
2(赤)
コード:
package threads;
public class CThread implements Runnable
{
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 20; i++) {
outt(i);
err(i);
}
}
synchronized public void outt(int i){
System.out.println(i);
}
synchronized public void err(int i){
System.err.println(i);
}
public static void main(String [] org){
Thread th = new Thread(new CThread());
th.start();
}
}