该园用来记录个人的学习内容,有些杂乱,谅解~嘿嘿~

Chloe

自学前端的小菜鸟一枚呀~
记录学习的知识

死锁

死锁:两个或两个以上线程在执行过程中,由于竞争资源而造成的阻塞问题,若无外力作用下,他们将无法推荐下去,此时系统处于死锁状态。

死锁的危害:

  • 导致程序得不到正确的运行结果(因为程序产生死锁,发生阻塞,不会继续向下执行);

  • 浪费资源:产生死锁,最少有两个线程会发生阻塞;

  • 产生新的死锁:产生死锁的线程会一直占有锁资源,会导致其他尝试获取该锁的线程也发生死锁,产生多米诺效应。

死锁产生的原因:

  • 因竞争资源产生死锁;

  • 进程顺序推进不当产生死锁;

死锁的必要条件:

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

  • 请求与保持条件:一个线程因请求资源而阻塞时,对已获取的资源保持不释放;

  • 不可剥夺条件:线程已获取的资源,在未使用之前,不能强行剥夺,只能在使用完时由自己释放;

  • 循环等待条件:若干线程之间形成一种头尾相连接的循环等待资源关系。

死锁的预防:破坏四个必要条件之一。

posted @ 2022-09-16 15:40  Chloe56  阅读(39)  评论(0编辑  收藏  举报