前言
在学习工程的同时也要注重基础,几个月前跟着书上写过的一个简单的死锁程序,写在博客中加深记忆
程序
1 | public class DeadLockDemo { |
程序中有两个资源字符串A和字符串B,两个线程t1、t2,t1线程先将字符串A锁住,之后让该线程睡眠2s,在睡眠的过程中,线程t2给字符串B加锁,之后想要给字符串A加锁,发现字符串A已经被锁住,等待字符串A的锁被释放,t2线程从醒来,想对字符串B加锁,结果字符串B也被锁住,这样两个线程互相等待对方释放锁,程序无法运行,形成死锁。