我正在实现一个简单的多线程示例,其中线程 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.....
应该对代码进行哪些更改?