当然,第二个循环永远不会被执行,但仍然很想知道以下示例是否可以归类为死锁.
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();
意味着主线程正在等待自己死亡,这不会发生.
这不同于死锁,其中两个线程各自拥有对不同资源的锁定,但每个线程都需要另一个锁定资源才能继续.这里情况不同.
不,这不是僵局.但是你确实无限期地阻止了你的主线程.该join
方法阻塞,直到Thread
它被称为die.
等待这个线程死亡.
调用Thread.currentThread().join();
意味着主线程正在等待自己死亡,这不会发生.
这不同于死锁,其中两个线程各自拥有对不同资源的锁定,但每个线程都需要另一个锁定资源才能继续.这里情况不同.