死锁的产生

来源:互联网 发布:手机计步器软件排行 编辑:程序博客网 时间:2024/04/30 17:26

多线程里面,大家一定不会忘记有死锁这个概念。大家都知道,死锁就是2个线程,互相等待对方的资源,一直不能往下执行。下面我用简单的用java代码写一个死锁。

public class Main{    private Object o1 = new Object(), 02 = new Object();    public static void main(String [] args){        Main m = new Main();        new Thread(){            public void run(){                synchroized(m.o1){                    synchroized(m.o2){              System.out.println(Thread.getCurrentName());                    }                }            }        }.start();        new Thread(){            synchroized(m.o2){                    synchroized(m.o1){              System.out.println(Thread.getCurrentName());                    }            }        }.start();    }}

解决死锁的方案就是要执行顺序不出现互相等待的情况,出现了这种情况需要你让我退这种。就好像一条只能容一辆车过路的桥,如果两辆完全方向相反的车,是不是势必就有一辆需要退出一条道让他先过呢,道理是一样的。

0 0