线程自身连接

2024-05-14

我很怀疑,当线程加入自身时会发生什么。即线程自行调用 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(使用前将#替换为@)

线程自身连接 的相关文章

随机推荐