我很怀疑,当线程加入自身时会发生什么。即线程自行调用 join 方法。我没有收到任何错误。
样本 :
public class JoinItself extends Thread {
public void run() {
System.out.println("Inside the run method ");
System.out.println(Thread.currentThread().isAlive());
for(int i=0;i<5;i++) {
try {
System.out.println("Joining itself ...");
Thread.currentThread().join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
JoinItself j = new JoinItself();
System.out.println(j.isAlive());
j.start();
System.out.println(j.isAlive());
System.out.println("Thread started ...");
}
}
但为什么?我应该得到任何错误吗?
线程连接本身的概念没有意义。
碰巧的是join()
方法使用isAlive()
方法
确定何时从join()
方法。在当前的实现中,还
不检查线程是否正在加入自身。
换句话说,join()
当且仅当线程不再活动时方法返回。这将产生以下效果
永远等待。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)