当前位置:  开发笔记 > 编程语言 > 正文

这是代码中的一种僵局吗?

如何解决《这是代码中的一种僵局吗?》经验,为你挑选了1个好方法。

当然,第二个循环永远不会被执行,但仍然很想知道以下示例是否可以归类为死锁.

public class Test {
    public static void main(String[] args) throws InterruptedException {
        for (int i = 1; i <= 10; i++)
            System.out.print(i + " ");

        Thread.currentThread().join();

        for (int i = 11; i <= 20; i++)
            System.out.print(i + " ");

    }
}

rgettman.. 5

不,这不是僵局.但是你确实无限期地阻止了你的主线程.该join方法阻塞,直到Thread它被称为die.

等待这个线程死亡.

调用Thread.currentThread().join();意味着主线程正在等待自己死亡,这不会发生.

这不同于死锁,其中两个线程各自拥有对不同资源的锁定,但每个线程都需要另一个锁定资源才能继续.这里情况不同.



1> rgettman..:

不,这不是僵局.但是你确实无限期地阻止了你的主线程.该join方法阻塞,直到Thread它被称为die.

等待这个线程死亡.

调用Thread.currentThread().join();意味着主线程正在等待自己死亡,这不会发生.

这不同于死锁,其中两个线程各自拥有对不同资源的锁定,但每个线程都需要另一个锁定资源才能继续.这里情况不同.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有