Java线程的join()方法让我困惑了一下。我有下面的例子了解join()方法示例
class MyThread extends Thread {
private String name;
private int sleepTime;
private Thread waitsFor;
MyThread(String name, int stime, Thread wa) { … }
public void run() {
System.out.print("["+name+" ");
try { Thread.sleep(sleepTime); }
catch(InterruptedException ie) { }
System.out.print(name+"? ");
if (!(waitsFor == null))
try { waitsFor.join(); }
catch(InterruptedException ie) { }
System.out.print(name+"] ");
而且
public class JoinTest2 {
public static void main (String [] args) {
Thread t1 = new MyThread("1",1000,null);
Thread t2 = new MyThread("2",4000,t1);
Thread t3 = new MyThread("3",600,t2);
Thread t4 = new MyThread("4",500,t3);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
在其顺序线程终止?
这是一个诡计问题吗?或作业? :) – bzlm 2011-05-03 16:45:36
刚刚读了一些电子书,发现这个例子,实际上执行线程等待线程在哪里加入被称为完成,也许我今天就退出:D – 2011-05-03 16:50:27
等待线程死亡。 http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html#join() – 2011-05-03 16:51:05