认识死锁之死锁的基本概念
线程(软件上的概念):CPU能运行(调度的)最小单位【所以多核系统可以调度多个单位】
这里要注意下手机的8核,10核处理器。手机的和电脑的不一样。一般手机上的都算上了GPU的核心。
CPU频率:CPU内部有个时钟电压这个电压就是频率。
当超频后,就是提高这个时钟电压,让CPU处理指令更快,所以为啥玩某些游戏的时候,某些机子上的CPU很发烫。
一个CPU核心在每一个瞬间智能运行一个计算机指令(属于某一个线程的指令)。
问:计算机为什么能“同时运行”很多个程序?
答:CPU任何时间都不能进行同时运行,这其实是个假象,CPU有一个时间片(CPU把他自己的时间进行分割,切成很多的时间片,每一个时间片很短,应该是那个0.几微秒的时间)这样不断的进行切换(调用不同的线程)就可以实现同时运行这种假象(人的眼睛是感觉不到的)。
阻塞:正在干的这个事情出现了故障,不能干下一个事情。比如上厕所,当拉shi的时候,半卡住的时候,这个时候就属于阻塞,因为shi半卡住,你不能去擦屁股和提裤子走人。在计算机中,线程获取了CPU的时间片,但卡在了某一个地方,就会造成阻塞。一个线程进入了一种状态,没办法即使的返回。
互斥:一个东西(关键数据、或者关键代码段、临界资源)只能一个线程使用。
死锁:犹如坑和纸张,这里只有1个坑和一个人用的纸,一个人用了坑没带纸,一个
人带了纸没进坑。这种状态就是死锁。一个线程需要同时拥有两个关键数据的访问权限。
【这里要注意,进程与进程之间也可能发送死锁,如一个进程要读取一个串口数据同时也想访问系统注册表里面的某个文件,然后操作系统把其中的一个串口给占用了,操作系统也想去访问同样的一个注册表文件,这个时候也会发送死锁】
造成死锁的原因:
1.资源是有限的;
2.对于这些资源,一次只能一个线程访问;
3.当发送死锁后,操作系统没有回收这些资源的机制;
4.线程之间形成了相互依赖的关系。
下一篇是专门讲解代码的:
https://blog.csdn.net/qq78442761/article/details/81293940
认识死锁之死锁的基本概念相关推荐
- 查看mysql数据库的死锁日志_【MySQL】mysql死锁以及死锁日志分析
1.死锁的概念 死锁:死锁一般是事务相互等待对方资源,最后形成环路造成的. 对于死锁,数据库处理方法:牺牲一个连接,保证另外一个连接成功执行. 发生死锁会返回ERROR:1213 错误提示,大部分的死 ...
- 什么是死锁及死锁的必要条件和解决方法【转】
来自:http://blog.163.com/yanenshun@126/blog/static/128388169200982444858590/?fromdm&fromSearch& ...
- 【MySQL】mysql死锁以及死锁日志分析
1.死锁的概念 死锁:死锁一般是事务相互等待对方资源,最后形成环路造成的. 对于死锁,数据库处理方法:牺牲一个连接,保证另外一个连接成功执行. 发生死锁会返回ERROR:1213 错误提示,大部分的死 ...
- 什么是死锁及死锁的必要条件和解决方法
前言 在计算机系统中有很多一次只能由一个进程使用的资源,如打印机,磁带机,一个文件的I节点等.在多道程序设计环境中,若干进程往往要共享这类资源,而且一个进程所需要的资源不止一个.这样,就会出现若干进程 ...
- mysql 死锁日志_Mysql死锁以及死锁日志分析
死锁的概念 死锁:死锁一般是事务相互等待对方资源,***形成环路造成的. 对于死锁,数据库处理方法:牺牲一个连接,保证另外一个连接成功执行. 发生死锁会返回ERROR:1213 错误提示,大部分的死锁 ...
- 什么是死锁?死锁产生的四个必要条件?如何避免与预防死锁?
一:什么是死锁 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进.例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又 ...
- 10、MySQL锁等待,死锁,死锁检测
使用数据库时,有时会出现死锁.对于实际应用来说,就是出现系统卡顿. 死锁是指两个或两个以上的事务在执行过程中,因争夺资源而造成的一种互相等待的现象.就是所谓的锁资源请求产生了回路现象,即死循环,此时称 ...
- 死锁 预防死锁避免死锁_死锁和处理死锁的方法
死锁 预防死锁避免死锁 僵局 (Deadlock) In the multiprogramming operating system, there are a number of processing ...
- 「操作系统」深入理解死锁(什么是死锁?死锁形成条件?如何避免死锁?如何排查死锁?)
「操作系统」深入理解死锁(什么是死锁?死锁形成条件?如何避免死锁?如何排查死锁?) 参考&鸣谢 什么是线程死锁?形成条件是什么?如何避免? Java圈子 面试官:如何快速排查死锁?如何避免死锁 ...
- 什么是死锁?死锁的预防?
转载自:https://blog.csdn.net/ypt523/article/details/81509454 如果一组进程中的每一个进程都在等待仅由该组进程中的其它进程才能引发的事件,那么该组进 ...
最新文章
- 网络推广网站解析为什么有些网站有收录却没流量?
- Java 编程语言中很少被人了解的特性-statement label
- 聊聊买卖股票的最佳时机
- db2 springboot 整合_springboot的yml配置文件通过db2的方式整合mysql代码示例
- 二次开发是什么意思_什么是框架?为什么要使用框架?我告诉你理由哦!
- canvas 元素绑定事件_绘制SVG内容到Canvas的HTML5应用
- IIS服务器绑定域名问题
- 将博客文章转变为电子书
- 机器学习05神经网络--表示
- Elasticsearch及相关插件的安装
- SpringCloud创建项目父工程
- java设计模式观察者模式_java设计模式--观察者模式
- C#编程(三十三)----------Array类
- python中capitalize()函数的用法
- 核心银行系统 之一 历史与发展
- 微信小程序生成海报工具Painter
- 利用css来制作轮播图
- HMS Core线上Codelabs挑战赛第二期开始
- Ubuntu 如何直接回到桌面
- 欧拉图论定理 公式及证明