线程死锁
线程死锁是多线程中最头疼的问题,一旦进入线程死锁,很多时候只能通过外部进程重启才能解决问题
线程到达死锁的四个条件:
互斥条件:一个资源每次只能被一个线程使用
资源独占条件:一个线程因请求资源而阻塞时
不剥夺条件::一个线程已获得的资源在未使用完成之前,不能强势剥夺
循环等待条件:若干个线程之间形成一种头尾详解循环等待资源的关系
要解决这种死锁必须从这四个条件入手,一般从以下两种方案入手
一、避免或者减少资源共享
二、使用自旋锁,
线程A在等在线程B释放资源,而线程B又在等在线程A释放资源,可以设置B的超时,在等待一段时间无法获得资源后,自行终止任务。
还没有评论,来说两句吧...