我有三个线程,分别是线程1,线程2和线程3。
如何对线程执行进行排序?
类似线程3跟随线程2,线程2跟随线程1? 实际上请参考我的解决方案,在我的情况下,线程1加入main并在执行时(线程1) 最后创建线程2等等。 我问这是一种正确的方法吗?
答案 0 :(得分:0)
你应该看看Thread.join()
join方法允许一个线程等待完成 另一个。如果t是其当前正在执行其线程的Thread对象,则
t.join();
导致当前线程暂停执行直到t的线程 终止。连接过载允许程序员指定一个 等待期。但是,与睡眠一样,join依赖于OS 对于计时,所以你不应该假设联接将完全等待 只要你指定。
答案 1 :(得分:0)
包装顺序;
类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());
}
}
public class Sequence { public static void main(String [] 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加入t2加入t1?