java 中,thread 有方法join()
比如,
Thread t = new Thread();
t.start();
t.join();我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么?一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
比如,
Thread t = new Thread();
t.start();
t.join();我看的书上讲,t.join() 表示: 将我当前线程加入到t的结尾,以便在我(当前线程)能够个再次运行之前必须完成。这个意思是说t.join是把t加入到当前线程的屁股后面,是这个意思么??我理解的对么?一般都什么情况下用到这个? 有没有具体的情况可以简单说一下
@Override
public void run() {
for(int i=1;i<10;i++){
System.out.println(Thread.currentThread().getName()+"="+i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) throws InterruptedException {
TestJoin tj1=new TestJoin();
TestJoin tj2=new TestJoin();
tj1.start();
tj1.join();//你试着注释这行代码看看有没有发现不同的结果
tj2.start();
tj1.join() 方法意思就说:优先执行tj1线程,直到tj1线程执行完,再执行其他线程.
那tj1.join()没有起作用?或者 在这个情况下,起了什么作用?我刚才查API 对JOIN()就一句话解释 :“Waits for this thread to die.”
意思是说,比如遇到tj1.Join(),就使当前thread去waiting,直到tj1的thread die。然后再回到当前进程?
有点乱
tj1.start();
tj2.start();
tj2.join();
tj1.join();这样就是运行 tj1, tj2, tj1 ,tj2 这个顺序如果这样:
tj1.start();
tj2.start();
tj1.join();
tj2.join();
结果的顺序是 tj1, tj1, tj2, tj1....很诡异。。到底是什么意思呢?
那tj1.join()没有起作用?或者 在这个情况下,起了什么作用? 我刚才查API 对JOIN()就一句话解释 :“Waits for this thread to die.”
意思是说,比如遇到tj1.Join(),就使当前thread去waiting,直到tj1的thread die。然后再回到当前进程?
有点乱