【架构-20】死锁死锁(Deadlock)是指两个或多个线程/进程在执行过程中,由于资源的互相占用和等待,而陷入一种互相等待的僵局,无法继续往下执行的情况。 产生死锁的四个必要条件: (1)互斥条件(Mutual Exclusion):至少有一个资源是非共享的,即在一个时间内只由一个线程/进程占用。 (2)占有并等待(Hold and Wait):一个线程/进程已经占用了至少一个资源,并且在等待获取其他资源。 (3)不可剥夺(No Preemption):资源只能被线程/进程自愿释放,不能被强制剥夺。 (4)循环等待(Ci