我有一个类ThreadClass看起来如下:Java线程问题
public class ThreadClass extends Thread{
String msg;
public void run()
{
for(int i=0;i<=5;i++)
{
System.out.println("Run method: "+msg);
}
}
ThreadClass(String mg)
{
msg=mg;
}
}
public class MainThreadClass {
public static void main(String[] args) {
ThreadClass dt1=new ThreadClass("Thread 1");
ThreadClass dt2=new ThreadClass("Thread 2");
dt1.start();
dt2.start();
System.out.println("Finished");
}
}
我得到的输出是:
Run method: Thread 1
Finished
Run method: Thread 1
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 1
Run method: Thread 1
Run method: Thread 1
Run method: Thread 1
我想输出实现将是:
Run method: Thread 1
Run method: Thread 1
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 2
Run method: Thread 1
Run method: Thread 1
Run method: Thread 1
Run method: Thread 1
Finished
因此当这两个线程终止时,打印完字符串。怎么做?
@Radek - 看不到你这里张贴的输出,但你不能指望你的孩子线程的输出确定性交织,除非你强制执行此使用锁定。 –