首页 > 编程语言 > 详细

多线程——死锁

时间:2018-10-27 17:33:21      阅读:162      评论:0      收藏:0      [点我收藏+]

多线程死锁的简单使用:

public class MyLock{
    public static final Object locka=new Object();
    public static final Object lockb=new Object();
    public static final Object lockc=new Object();
    public static final Object lockd=new Object();
}
package day_12_01_Thread;

/**
 * 死锁的情况
 * 
 * @author Administrator
 *
 */
public class TestSynchronized implements Runnable {
    public static void main(String[] args) {
        TestSynchronized s = new TestSynchronized();
        Thread t1 = new Thread(s);
        Thread t2 = new Thread(s);

        t1.start();
        t2.start();
    }

    @Override
    public void run() {
        int i = 0;
        while (true) {
            if (i % 2 == 0) {
                synchronized (MyLock.locka) {
                    System.out.println("if.......locka");
                    synchronized (MyLock.lockb) {
                        System.out.println("if ...........lockb");
                    }
                }
            } else {
                synchronized (MyLock.lockb) {
                    System.out.println("else..........lockb");
                    synchronized (MyLock.locka) {
                        System.out.println("else..........locka");
                    }
                }
            }

            i++;
        }
    }
}

 

多线程——死锁

原文:https://www.cnblogs.com/whx20100101/p/9862348.html

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