死锁就是两个或两个以上的线程被无限的阻塞,线程之间相互等待所需资源。可能发生在以下情况:
当两个线程相互调用Thread.join();
当两个线程使用嵌套的同步块,一个线程占用了另外一个线程必须的锁,互相等待时被阻塞就有可能出现死锁。
1.调用了Thread类的start()方法(向CPU申请另一个线程空间来执行run()方法里的代码),线程的run()方法不一定立即执行,而是要等待JVM进行调度。
run()方法中包含的是线程的主体,也就是这个线程被启动后将要运行的代码。
这是我在传智播客上的老师给我们总结的,希望可以帮助到你。最好不要写嵌套循环,这容易出现死锁问题。
|