线程死锁

港控/mmm° 2022-08-21 14:43 279阅读 0赞

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

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

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

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

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

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

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

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

二、使用自旋锁,

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

发表评论

表情:
评论列表 (有 0 条评论,279人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线

    线程死锁是多线程中最头疼的问题,一旦进入线程死锁,很多时候只能通过外部进程重启才能解决问题 线程到达死锁的四个条件: 互斥条件:一个资源每次只能被一个线程使用 资源独占条

    相关 线

    一、死锁概念 线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便

    相关 线

    简述:          星期一,新的的一周开始,天气晴朗,风和日丽。本是一个非常不错的心情,突然微信头像闪烁,果不其然又爬虫出问题了,可谓是一入爬虫深似海,项目稳定才见鬼。

    相关 线

    虽然同步锁机制解决了线程安全问题,但是也带来一些弊端:     1. 效率会降低,每次都需要判断锁的状态     2. 可能引发死锁(彼此占用所需要的资源),出现的概率非常小,

    相关 线

    先简单用生活列子介绍死锁,          2个人一起吃饭但是只有一双筷子,2人轮流吃(同时拥有2只筷子才能吃)。某一个时候,一个拿了左筷子,一人拿了右筷子,2个人都