并发之死锁.md 发表于 2019-03-01 更新于 2020-02-27 分类于 语言 , java , 并发 阅读次数: Disqus: [TOC] Java编程写一个会导致死锁的程序 两个线程里面分别持有两个lock对象:lock1和lock2。 线程1的run()方法中同步代码块先获取lock1的对象锁,Thread.sleep(50), 线程2的run()方法中同步代码块先获取lock2的对象锁,接着获取lock1的对象锁,当然这时lock1的对象锁已经被线程1锁持有,线程2等待。 线程1睡完,线程2已经获取了lock2的对象锁了,线程1此时尝试获取lock2的对象锁,此时一个死锁就形成了。 参考死锁Deadlock避免死锁