首页 > 其他 > 详细

同步死锁

时间:2014-03-12 16:21:43      阅读:431      评论:0      收藏:0      [点我收藏+]

两个线程,一个线程持有另一个线程运行时的锁,就会死锁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public class SynchronizedLock{
 
    public static void main(String[] args) throws InterruptedException {
         
        SynchronizedLockDemo sld = new SynchronizedLockDemo();
        Thread thread0 = new Thread(sld);
        Thread thread1 = new Thread(sld);
        thread0.start();
        Thread.sleep(1);
        sld.flag = true;
        thread1.start();
    }
     
}
enum Lock{
    LOCKA,LOCKB;
}
class SynchronizedLockDemo implements Runnable{
    //布尔变量的默认值是false
    boolean flag;
    public void synLock(){
        if(flag){
            synchronized(Lock.LOCKA){
                System.out.println("从a到b外层");
                synchronized(Lock.LOCKB){
                    System.out.println("从a到b内层");
                }
            }
        }else{
            synchronized(Lock.LOCKB){
                System.out.println("从b到a外层");
                synchronized(Lock.LOCKA){
                    System.out.println("从b到a内层");
                }
            }
        }
    }
    @Override
    public void run() {
        synLock();
    }
}

  

同步死锁,布布扣,bubuko.com

同步死锁

原文:http://www.cnblogs.com/lxricecream/p/3595626.html

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