Java线程死锁demo
当线程中的同步代码有多个嵌套同步锁时容易发生死锁,下面的例子中2个线程公用2锁,一个拿着钱,要饭,一个拿着饭,要钱,互相不给,所以可能造成死锁现象:
package dielock;
public class Money implementsRunnable{
private Object money;
private Object food;
public Money(Objectmoney, Object food) {
this.money = money;
this.food = food;
}
@Override
public void run() {
synchronized (money) {
System.out.println("现在我拿着钱,但是我要先吃饭");
try {
Thread.sleep(0);
} catch (InterruptedExceptione) {
e.printStackTrace();
}
synchronized (food) {