当前位置: 首页 > news >正文

所谓死锁

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

所谓死锁

1.死锁定义

维基百科的解释: 死锁(英语:Deadlock),又译为死结,计算机科学名词。当两个以上的运算单元,双方都在等待对方停止执行,以取得系统资源,但是没有一方提前退出时,就称为死结。在多工作业系统中,作业系统为了协调不同行程,能否取得系统资源时,为了让系统运作,必须要解决这个问题。

这里指的是进程死锁,是个计算机技术名词。它是操作系统或软件运行的一种状态:在多工系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其他进程占用时,就形成了死锁。

所以换句话说死锁的本质:线程在持有锁资源A的同时,想要获取锁资源B,但锁资源B此时被当前线程或者其他线程永久持有,无法释放锁资源,导致线程的永久阻塞

2.死锁的条件:

一般来说,要出现死锁问题需要满足以下条件:

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

  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

  • 不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺。

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

只要破坏死锁 4 个必要条件之一中的任何一个,死锁问题就能被解决。

转载于:https://my.oschina.net/iak1001/blog/1859938

相关文章:

  • Linux下函数调用堆栈帧的详细解释【转】
  • Array.some()方法
  • python浏览器自动化测试库【2018/7/22-更新】
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 剥开比原看代码12:比原是如何通过/create-account-receiver创建地址的?
  • ubuntu 出错 /etc/sudoers is world writable
  • J2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 技术介绍
  • RabbitMQ系列(五)使用Docker部署RabbitMQ集群
  • 小程序获取用户头像大图 小程序获取用户头像模糊的问题 小程序自定义转发头像模糊 小程序自定义转发分享大图...
  • mysql---表操作之创建表
  • redux-form V.7.4.2学习笔记(六)表单同步校验技术
  • 如何使用Helm更新使用ConfigMap的应用程序
  • 浅谈LVS
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • python开发 *进程数据隔离.守护进程,进程同步工具 * 180725
  • @angular/forms 源码解析之双向绑定
  • 【个人向】《HTTP图解》阅后小结
  • CentOS 7 防火墙操作
  • go语言学习初探(一)
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JS题目及答案整理
  • Linux CTF 逆向入门
  • Median of Two Sorted Arrays
  • ng6--错误信息小结(持续更新)
  • Object.assign方法不能实现深复制
  • Promise面试题,控制异步流程
  • python_bomb----数据类型总结
  • Sublime Text 2/3 绑定Eclipse快捷键
  • TypeScript实现数据结构(一)栈,队列,链表
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 基于 Babel 的 npm 包最小化设置
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 普通函数和构造函数的区别
  • 思考 CSS 架构
  • 为什么要用IPython/Jupyter?
  •  一套莫尔斯电报听写、翻译系统
  • 在Docker Swarm上部署Apache Storm:第1部分
  • gunicorn工作原理
  • 大数据全解:定义、价值及挑战
  • 函数计算新功能-----支持C#函数
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​queue --- 一个同步的队列类​
  • #NOIP 2014#Day.2 T3 解方程
  • #每日一题合集#牛客JZ23-JZ33
  • (175)FPGA门控时钟技术
  • (4)Elastix图像配准:3D图像
  • (动态规划)5. 最长回文子串 java解决
  • (二)WCF的Binding模型
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)重识new
  • (总结)Linux下的暴力密码在线破解工具Hydra详解