避免多线程进程中的死锁

Niz*_*ira 4 multithreading deadlock idioms

为了避免死锁,有人应该遵循哪些最佳做法/习惯用法?

aka*_*son 7

四个条件必须发生的发生死锁:

  1. 互斥条件:一次不能由多个进程使用的资源

  2. 保持和等待条件:已持有资源的进程可以请求新资源

  3. 没有抢占条件:没有资源可以从持有它的进程中强制删除,资源只能通过进程的显式操作来释放

  4. 循环等待条件:两个或多个进程形成一个循环链,其中每个进程等待链中下一个进程所持有的资源

至少避免其中一种,最好是更多,你不应该有太多问题.