什么是死锁
01 死锁的定义
一组互相竞争资源的线程因相互等待,导致"永久"阻塞的状态
02 原因:
互斥条件,共享资源x,y只能被一个线程占用
占用且等待 ,线程t1已经取得共享资源x,在等待共享资源y时,不释放共享资源x
不可抢占,其他线程不可抢占线程t1占有的资源
循环等待,线程t1等待线程t2占有的资源,线程t2等待线程t1占有的资源
锁本身是通过互斥来解决线程安全问题
占用且等待 -->一次性申请所有的资源
不可抢占-->占用共享资源的线程在申请其他共享资源线程时,申请不到主动释放它所占有的共享资源