首页 > 其他分享 >死锁介绍

死锁介绍

时间:2023-03-06 09:57:33浏览次数:35  
标签:占有 介绍 T1 共享资源 死锁 线程 等待

title: 死锁
date: 2022-12-19 09:07:16
tags: java
comments: true
categories: [java]

死锁

什么是死锁?

互相拿到对方的锁,同时又不能放弃当前的锁。指相互之间竞争相同资源的线程因为相互等待而导致永久阻塞。

死锁

死锁发生的原因

互 占 不 循:

  1. 斥: 共享资源x和y只能被一个线程占用
  2. 有且等待:占有且等待,线程 T1 已经取得共享资源 X,在等待共享资源 Y 的时候,不释放共享资源 X;
  3. 可抢占:其他线程不能强行抢占线程 T1 占有的资源;
  4. 环等待: 线程 T1 等待线程 T2 占有的资源,线程 T2 等待线程 T1 占有的资源,就是循环等待。

避免死锁的措施

上面说到发生死锁必须同时满足四个条件,那么,我们破坏其中一个条件,就可以解决死锁的问题。如果已经发生了死锁,一般没有什么好的方法来解决,只能通过重启应用,所以如果要解决死锁问题,最好的方式就是提前规避。

首先,我们肯定不能去破坏第一个条件,锁的作用就是要互斥。所以,只能去破坏其他三个条件。

标签:占有,介绍,T1,共享资源,死锁,线程,等待
From: https://www.cnblogs.com/feihui233/p/17182713.html

相关文章

  • 第一次自我介绍
    这个作业属于哪个课程https://edu.cnblogs.com/campus/sdscfz/SF3/这个作业要求在哪里https://edu.cnblogs.com/campus/sdscfz/SF3/homework/12910这个作业的......
  • 自己动手从零写桌面操作系统GrapeOS系列教程——9.实模式介绍
    学习操作系统原理最好的方法是自己写一个简单的操作系统。在GrapeOS中会用到2种CPU模式,一种是实模式(realmode),另一种是保护模式(protectedmode)。在本教程中,保护模式特......
  • 01-Redis系列之-Redis介绍安装配置
    Redis初识Redis主要内容1redis介绍,特性,安装和配置,典型应用场景2单线程架构,5大数据类型操作,通用指令和高级API的使用3高级用法(慢查询,管道,shu发布订阅,bitmap位图,Hype......
  • 自我介绍
    我的基本信息这个作业属于哪个课程https://edu.cnblogs.com/campus/sdscfz/SF3这个作业要求在哪里https://edu.cnblogs.com/campus/sdscfz/SF3/homework/12910......
  • 自我介绍
    这个作业属于哪个课程https://edu.cnblogs.com/campus/sdscfz/SF3?filter=all这个作业要求在哪里https://edu.cnblogs.com/campus/sdscfz/SF3/homework/12910......
  • exit()函数介绍
    (一)介绍函数名:exit()所在头文件:stdlib.h功能:关闭所有文件,终止正在执行的进程。exit(1)表示异常退出.这个1是返回给操作系统的。exit(x)(x不为0)都表示异常退出exit......
  • ES6-ES11 Set集合介绍与API
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • ES6-ES11 promise介绍与基本使用
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title......
  • ThinkPHP 3.2.3 介绍及安装
    一、ThinkPHP的介绍:基于MVC模式(3者分离)M-Model模型工作:负责数据的操作V-View视图(模板)工作:负责前台页面显示C-Controller控制器(模块)工作:描述功能二、Thi......
  • 死锁的产生
    1.资源的互斥,同一时间段资源只能被一个线程占用2.线程有了一个资源后,又要获得其他的资源(而该资源又被其他单元所占有,而自己的资源又不释放)3.线程所占有的资源不能被其他......