我有三个线程命名为线程1,线程2和线程3。java线程如何排序线程的执行顺序
如何排序线程执行?
像线程3跟随线程2和线程2跟随线程1? 其实请参考我的解决方案,在我的情况下,线程1加入主程序并同时执行(线程1) 最后创建线程2等等。 我在问这是一个正确的方法吗?
我有三个线程命名为线程1,线程2和线程3。java线程如何排序线程的执行顺序
如何排序线程执行?
像线程3跟随线程2和线程2跟随线程1? 其实请参考我的解决方案,在我的情况下,线程1加入主程序并同时执行(线程1) 最后创建线程2等等。 我在问这是一个正确的方法吗?
你应该看看Thread.join()
join方法允许一个线程等待的 另一完成。如果t是线程当前正在执行的线程对象,则
t.join();
导致当前线程暂停执行,直到t的线程 终止。加入过载允许程序员指定一个等待时间段 。但是,与睡眠一样,加入时间依赖于操作系统 ,所以您不应该假设加入将按您指定的长度准确等待 。
PLZ指我的解决方案 – 2014-10-29 06:32:01
封装测序;
类T1实现Runnable {
@Override
public void run() {
System.out.println("thread executing is : "
+ Thread.currentThread().getName());
T2 tr2 = new T2();
Thread t2 = new Thread(tr2, "t2");
t2.start();
}
}
类T2实现Runnable {
@Override
public void run() {
System.out.println("thread executing is : "
+ Thread.currentThread().getName());
T3 tr3 = new T3();
Thread t3 = new Thread(tr3, "t3");
t3.start();
}
}
类T3实现Runnable {
@Override
public void run() {
System.out.println("thread executing is : "
+ Thread.currentThread().getName());
}
}
公共类序列{ 公共静态无效的主要(字串[] args)抛出InterruptedException的{
T1 tr1 = new T1();
Thread t1 = new Thread(tr1, "t1");
t1.start();
t1.join();
Thread.sleep(4000);
System.out.println("main finishing..");
}
}
//这是如何我做这件事。有没有更好的方法来做到这一点?像t3 join t2 join t1?
如果您想要一个接一个地等待线程的完整执行,请使用'join()'。 – TheLostMind 2014-10-29 06:25:19
请参考我的解决方案,我使用连接只用于线程t1(与主)休息它是简单的顺序流。 – 2014-10-29 06:31:02