スレッド 1 が 1000 ミリ秒ごとに PING を出力し、スレッド 2 が 2000 ミリ秒ごとに PONG を出力する単純なマルチスレッドの例を実装しています。
public class T extends Thread
{
public void run()
{
int i =10;
while(i>0)
{
if(Thread.currentThread().getName().equals("T1"))
{
System.out.println("\nPING");
try {Thread.sleep(1000);}
catch (InterruptedException e) {e.printStackTrace();}
}
else if (Thread.currentThread().getName().equals("T2"))
{
System.out.println("\nPONG");
try {Thread.sleep(2000);}
catch (InterruptedException e) {e.printStackTrace();}
}
i--;
}
}
public static void main(String[] args)
{
Thread t1 = new T();
Thread t2 = new T();
t1.setName("T1");
t2.setName("T2");
t1.start();
t2.start();
}
}
しかし、出力は次のようになります::
ポン
ピン
ピン
ピン
ポン
ピン
ピン
ポン
ピン
ピン
ポン
ピン
ピン
ポン
ピン
ポン
ポン
ポン
ポン
ポン
しかし、私の期待される出力は次のようになるはずです
PING
PING
PONG
PING
PING
PONG
PING
PING
PONG.....
コードにどのような変更を加える必要がありますか?