首页 > 其他 > 详细

死锁产生的原理

时间:2017-02-17 19:57:46      阅读:98      评论:0      收藏:0      [点我收藏+]

 


概述: 就是多个线程在抢占CPU的执行权的时候,出现了相互等待的状态

 


当代码中出现了同步嵌套的时候,并且使用两个相同的锁,就容易发生死锁;

尽量不要嵌套使用

private static String s1 = "筷子左";
private static String s2 = "筷子右";
public static void main(String[] args) {
    new Thread() {
        public void run() {
            while(true) {
                synchronized(s1) {
                    System.out.println(getName() + "...拿到" + s1 + "等待" + s2);
                    synchronized(s2) {
                        System.out.println(getName() + "...拿到" + s2 + "开吃");
                    }
                }
            }
        }
    }.start();

    new Thread() {
        public void run() {
            while(true) {
                synchronized(s2) {
                    System.out.println(getName() + "...拿到" + s2 + "等待" + s1);
                    synchronized(s1) {
                        System.out.println(getName() + "...拿到" + s1 + "开吃");
                    }
                }
            }
        }
    }.start();
}

 

死锁产生的原理

原文:http://www.cnblogs.com/loaderman/p/6411188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!