定义:
是指两个或两个以上的进程/线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去
死锁产生:
- 互斥条件:
即当资源被一个线程使用(占有)时,别的线程不能使用
- 占有并等待条件:一个进程已经占有了某些资源,但还请求其他资源,资源只能由资源占有者主动释放。
- 不剥夺条件:进程不能被剥夺其已占有的资源,只有当它完成对这些资源的使用时,才会释放这些资源。
- 循环等待条件:存在一个进程的集合P1, P2, ..., Pn,使得进程P1等待进程P2所占有的资源,进程P2等待进程P3所占有的资源,依此类推,最后进程Pn等待进程P1所占有的资源,形成一个循环等待链
同步可以实现互斥操作,互斥无法实现同步操作