码迷,mamicode.com
首页 > 其他好文 > 详细

死锁产生的原理

时间:2017-02-17 19:58:39      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:产生   oid   ati   ring   相互   blog   thread   int   static   

 


概述: 就是多个线程在抢占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();
}

 

死锁产生的原理

标签:产生   oid   ati   ring   相互   blog   thread   int   static   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!