产生死锁的条件:
1.有至少一个资源不能共享
2.至少有一个任务必须持有一个资源并且等待获取另一个被别的任务持有的资源
3.资源不能任务抢占
4.必须有循环等待
以下是简单实现的死锁程序:
public class DeadLockMain { private static Object obj1 = new Object(); private static Object obj2 = new Object(); public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { synchronized (obj1) { try { Thread.sleep(100); } catch (InterruptedException e) { } synchronized (obj2) { } } } }).start(); new Thread(new Runnable() { @Override public void run() { synchronized (obj2) { try { Thread.sleep(100); } catch (InterruptedException e) { } synchronized (obj1) { } } } }).start(); } }
我是胡说八道的:-D