线程死锁

线程死锁是多线程中最头疼的问题,一旦进入线程死锁,很多时候只能通过外部进程重启才能解决问题

线程到达死锁的四个条件:

互斥条件:一个资源每次只能被一个线程使用

资源独占条件:一个线程因请求资源而阻塞时

不剥夺条件::一个线程已获得的资源在未使用完成之前,不能强势剥夺

循环等待条件:若干个线程之间形成一种头尾详解循环等待资源的关系

要解决这种死锁必须从这四个条件入手,一般从以下两种方案入手

一、避免或者减少资源共享

二、使用自旋锁,

线程A在等在线程B释放资源,而线程B又在等在线程A释放资源,可以设置B的超时,在等待一段时间无法获得资源后,自行终止任务。






你可能感兴趣的:(线程死锁)