linux 多线程的基础 交通信号灯学习笔记 :信号详解
(以下均为《linux/UNIX 系统编程手册》中的部分笔记分享,和整理)
如果想要掌握多线程的编程方法,掌握信号量的学习尤为重要
首先第一点 ,还是对基础语义部分的理解,什么是信号:
信号是事件发生时对进程的通知机制
什么意思:
这明显就是交通信号灯吗,多个车流,如果不用交通信号灯进行调节,就很容易的撞在一起,当多个车流相遇时,就得靠,不同的信号标识区分,不同的车流(实际上是一种 软件中断的方式)
既然是一种软件中断的方式,那么都可以处理哪些交通事故呢
第一条:当硬件发生异常时,什么访问了无效的内存呀,异常的机器指令啥的,都会发生硬件异常,这是时候,就会产生一个信号量,报告给内核,然后再由内核告诉,发生异常的线程,你可以退下了,然后线程就异常退出(一般做,驱动的异常中断处理,报告错误 )
第二条: 当用户输入中断运行的组合键位时,比如说是“CTRL-C”的使用 或者 “CTRL-D”的使用,也会产生一个信号量,顺序是一样的,先内核,在由内核去通知这个线程,so,整个进程都会强制退出了
第三条 :发生了软件事件,就是各种不靠谱的退出和异常,都可以归结为发生了,软件事件
在 <signal.h>中有着很详细的对这些整数做了定义 ,有需要自行查看 ,都有哪些情况会产生信号
信号的类型和默认行为:
Linux 中 标准信号的 编号为1~31,对同义的信号的声明,不做讲解,(使用的范围很大,所以知道有31个这样的信号就可以,建议做一个字典程序,可以随时查询使用这些信号,方便代码的阅读 )
这些信号类型呢 ,太多了,我按照我的理解说一下,他们出现的大概原因,还是按照交通灯的理解,出了多个事故,但是每个事故是有不同类别的,什么非法的运算操作,访问了非法的地址呀 ,等等不靠谱的事儿,我可以做一个 摘抄大家看一下这些类别都有什么 ,在我的理解 里面,一是可以用来做线程的调度使用,二是可以作为线程自我保护的一个依据,比如:linux的系统日志就是这样的一个守护进程,负责记录,所有的违法记录,和最佳市民 :
一般情况下,大家需要关注的是core,出了日志,意外,最快的可以快速定位,程序出错的方法
这些值
linux 多线程的基础 交通信号灯学习笔记 :信号详解相关推荐
- Linux实操篇——实用指令学习笔记(详解)
9.3帮助指令 9.3.1介绍 当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法. 9.3.2man 获得帮助信息 基本语法 man[命令或配置文件](功能描述: ...
- wringPi 初始化GPIO 为上拉_敏矽微电子Cortex-M0学习笔记04-GPIO详解及应用实例
前面我们已经对敏矽微电子的基于cortex m0内核的ME32F030R8T6的基本功能做了介绍,然后详细讲解了开发环境MDK的安装,pack包的安装,工程的建立及程序的仿真,紧接着讲解了ME32F0 ...
- IOS开发学习笔记-----UILabel 详解
IOS开发学习笔记-----UILabel 详解 01 //创建uilabel 02 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMa ...
- python学习笔记 正则表达式 详解2
python学习笔记 正则表达式 详解 行定位符 行定位符就是用来描述子串的边界."^"表示行的开始:"$"表示行的结尾 ^tm:匹配以子串tm的开始位置是行头 ...
- 关于ClassLoader的学习笔记,详解版
ClassLoader 详解 ClassLoader 做什么的? 延迟加载 各司其职 ClassLoader 传递性 双亲委派 Class.forName 自定义加载器 Class.forName v ...
- JavaWeb学习笔记——JSON详解
本文是学习Java时所记录的学习笔记,本节记录了JSON的相关知识,需要掌握JSON的书写格式,懂得JSON与String类型的转换. 文章目录 JSON简介 什么是JSON? JSON语法规则 JS ...
- 《鸟哥的Linux私房菜-基础篇》学习笔记
主要用来记录学习,如果能帮助到你那最好了. 数据流重导向 概念 cat /etc/crontab /etc/vbirdsay 标准输出:将cat的文件输出到屏幕上 标准错误输出:无法找到文件报错 *系 ...
- ctfhub技能书+历年真题学习笔记(详解)
Web Web前置技能 HTTP协议 请求方式 题目:HTTP Method is GET Use CTF**B Method, I will give you flag. Hint: If you ...
- 进厂手册:Git 学习笔记(详解命令)
文章目录 git 对象 通过git对象进行文件的保存 git对象的缺点 树对象 构建树对象 提交对象 高层命令 工作区的文件状态 git reset hard 咋用以及用错了怎么恢复 git chec ...
最新文章
- 使用OpenCV(Python,C ++)无缝克隆
- .net 中 GridViewRow使用字段名来访问数据,而不是使用索引
- 最简单红米系统一键激活xposed框架教程
- Nginx初学第一步
- [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
- TextWatcher() 的用法
- python程序员脱单攻略_520 情人节 :属于 Python 程序员的脱单攻略大合集(视频版)...
- TCP协议-相关面试题
- 数组(Array)的常用方法
- android 友盟推送获取不到devicetoken,使用友盟消息推送中遇到的哪些问题--索引(开发者必读)...
- Anaconda——如何“重命名”conda虚拟环境(通过复制和删除操作实现)
- 使用java concurrent处理异步加载图片功能
- java 数据库编程(一)JDBC连接Sql Server数据库
- 树莓派+阿里云轻松智能家居DIY-app
- Web3在中国,房间里的大象
- 特征级融合_多传感器融合理论
- VB.NET的form窗体操作
- 卡罗拉 (COROLLA) - 灯光开关
- 什么是纠删码(与纠错码的区别)|纠删码与副本对比|LDPC码
- 远征日服·信喵之野望 按键精灵脚本4.截卡
热门文章
- Python根据多个空格Split字符串
- 使用python模拟Simple方式连接ldap
- servlet 访问项目
- 使用PHP对数据库输入进行恶意代码清除
- 利用Powershell自动部署asp.net mvc网站项目 (一)
- Django模拟新浪微博的@功能
- java.util.ResourceBundle使用详解
- python r语言 作图_R语言低级绘图函数-rect
- python安装requests库pip不是_python pip安装requests时报错,怎么解决?
- jq onclick 定义_从HTML中的onClick属性调用jQuery方法