死锁的示例

package day12;

/*
同步锁的示例
 */
class Test implements Runnable{
    private boolean flag;

    Test(boolean flag){
        this.flag = flag;
    }

    public void run(){
        if (flag){
            while (true){
                synchronized (MyLock.locka){
                    System.out.println("if      locka....");
                    synchronized (MyLock.lockb){
                        System.out.println("if      locka....");
                    }
                }
            }
        }else {
            while (true){
                synchronized (MyLock.lockb){
                    System.out.println("else       lockb");
                    synchronized (MyLock.locka){
                        System.out.println("else       locka");
                    }
                }
            }
        }
    }
}

class MyLock{
    public static  final Object locka = new Object();
    public static final Object lockb = new Object();
}

public class DeadLockTest {
    public static void main(String[] args) {
        Test a = new Test(true);
        Test b = new Test(false);

        Thread t1 = new Thread(a);
        Thread t2 = new Thread(b);

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 死锁示例 由于两个锁对象lock1,lock2是static只存在一份,导致两个线程执行时会相互等待已经被获得的琐...
    keepSwiming阅读 1,783评论 0 0
  • 当线程需要两个锁oa ob来完成线程任务时,一个线程用oa锁时,cpu切到另外一个线程,该线成用ob锁,第一个线...
    李霖神谷阅读 1,756评论 0 0
  • 第一次玩属于自己的博客,今天在一个App上看到的,说的很好,再敲了一遍,分享一下有关于死锁、活锁及饥饿的概念和区别...
    堤岸小跑阅读 5,451评论 0 0
  • 元妖历明皇年子月一日 天气 阴很阴 我是一只小狐狸精,我是一只不务正业的妖精,因为我还是一名可耻的...
    公子小草阅读 3,751评论 0 5
  • 未冉著。 她的文章大多是这样,男主富二代,凭自己也有有小事业,女主坚强,独立,有面对困境的能力。书名都是哥哥的歌词...
    路茗阅读 5,840评论 0 0

友情链接更多精彩内容