(以下均为《linux/UNIX 系统编程手册》中的部分笔记分享,和整理)
如果想要掌握多线程的编程方法,掌握信号量的学习尤为重要
首先第一点 ,还是对基础语义部分的理解,什么是信号:
信号是事件发生时对进程的通知机制
什么意思:
这明显就是交通信号灯吗,多个车流,如果不用交通信号灯进行调节,就很容易的撞在一起,当多个车流相遇时,就得靠,不同的信号标识区分,不同的车流(实际上是一种 软件中断的方式)

既然是一种软件中断的方式,那么都可以处理哪些交通事故呢
第一条:当硬件发生异常时,什么访问了无效的内存呀,异常的机器指令啥的,都会发生硬件异常,这是时候,就会产生一个信号量,报告给内核,然后再由内核告诉,发生异常的线程,你可以退下了,然后线程就异常退出(一般做,驱动的异常中断处理,报告错误 )
第二条: 当用户输入中断运行的组合键位时,比如说是“CTRL-C”的使用 或者 “CTRL-D”的使用,也会产生一个信号量,顺序是一样的,先内核,在由内核去通知这个线程,so,整个进程都会强制退出了
第三条 :发生了软件事件,就是各种不靠谱的退出和异常,都可以归结为发生了,软件事件
在 <signal.h>中有着很详细的对这些整数做了定义 ,有需要自行查看 ,都有哪些情况会产生信号

信号的类型和默认行为:
Linux 中 标准信号的 编号为1~31,对同义的信号的声明,不做讲解,(使用的范围很大,所以知道有31个这样的信号就可以,建议做一个字典程序,可以随时查询使用这些信号,方便代码的阅读 )

这些信号类型呢 ,太多了,我按照我的理解说一下,他们出现的大概原因,还是按照交通灯的理解,出了多个事故,但是每个事故是有不同类别的,什么非法的运算操作,访问了非法的地址呀 ,等等不靠谱的事儿,我可以做一个 摘抄大家看一下这些类别都有什么 ,在我的理解 里面,一是可以用来做线程的调度使用,二是可以作为线程自我保护的一个依据,比如:linux的系统日志就是这样的一个守护进程,负责记录,所有的违法记录,和最佳市民 :


一般情况下,大家需要关注的是core,出了日志,意外,最快的可以快速定位,程序出错的方法
这些值

linux 多线程的基础 交通信号灯学习笔记 :信号详解相关推荐

  1. Linux实操篇——实用指令学习笔记(详解)

    9.3帮助指令 9.3.1介绍 当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解这个指令的使用方法. 9.3.2man 获得帮助信息 基本语法 man[命令或配置文件](功能描述: ...

  2. wringPi 初始化GPIO 为上拉_敏矽微电子Cortex-M0学习笔记04-GPIO详解及应用实例

    前面我们已经对敏矽微电子的基于cortex m0内核的ME32F030R8T6的基本功能做了介绍,然后详细讲解了开发环境MDK的安装,pack包的安装,工程的建立及程序的仿真,紧接着讲解了ME32F0 ...

  3. IOS开发学习笔记-----UILabel 详解

    IOS开发学习笔记-----UILabel 详解 01 //创建uilabel 02 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMa ...

  4. python学习笔记 正则表达式 详解2

    python学习笔记 正则表达式 详解 行定位符 行定位符就是用来描述子串的边界."^"表示行的开始:"$"表示行的结尾 ^tm:匹配以子串tm的开始位置是行头 ...

  5. 关于ClassLoader的学习笔记,详解版

    ClassLoader 详解 ClassLoader 做什么的? 延迟加载 各司其职 ClassLoader 传递性 双亲委派 Class.forName 自定义加载器 Class.forName v ...

  6. JavaWeb学习笔记——JSON详解

    本文是学习Java时所记录的学习笔记,本节记录了JSON的相关知识,需要掌握JSON的书写格式,懂得JSON与String类型的转换. 文章目录 JSON简介 什么是JSON? JSON语法规则 JS ...

  7. 《鸟哥的Linux私房菜-基础篇》学习笔记

    主要用来记录学习,如果能帮助到你那最好了. 数据流重导向 概念 cat /etc/crontab /etc/vbirdsay 标准输出:将cat的文件输出到屏幕上 标准错误输出:无法找到文件报错 *系 ...

  8. ctfhub技能书+历年真题学习笔记(详解)

    Web Web前置技能 HTTP协议 请求方式 题目:HTTP Method is GET Use CTF**B Method, I will give you flag. Hint: If you ...

  9. 进厂手册:Git 学习笔记(详解命令)

    文章目录 git 对象 通过git对象进行文件的保存 git对象的缺点 树对象 构建树对象 提交对象 高层命令 工作区的文件状态 git reset hard 咋用以及用错了怎么恢复 git chec ...

最新文章

  1. 使用OpenCV(Python,C ++)无缝克隆
  2. .net 中 GridViewRow使用字段名来访问数据,而不是使用索引
  3. 最简单红米系统一键激活xposed框架教程
  4. Nginx初学第一步
  5. [CS101] 转载:浅议Fibonacci(斐波纳契)数列求解
  6. TextWatcher() 的用法
  7. python程序员脱单攻略_520 情人节 :属于 Python 程序员的脱单攻略大合集(视频版)...
  8. TCP协议-相关面试题
  9. 数组(Array)的常用方法
  10. android 友盟推送获取不到devicetoken,使用友盟消息推送中遇到的哪些问题--索引(开发者必读)...
  11. Anaconda——如何“重命名”conda虚拟环境(通过复制和删除操作实现)
  12. 使用java concurrent处理异步加载图片功能
  13. java 数据库编程(一)JDBC连接Sql Server数据库
  14. 树莓派+阿里云轻松智能家居DIY-app
  15. Web3在中国,房间里的大象
  16. 特征级融合_多传感器融合理论
  17. VB.NET的form窗体操作
  18. 卡罗拉 (COROLLA) - 灯光开关
  19. 什么是纠删码(与纠错码的区别)|纠删码与副本对比|LDPC码
  20. 远征日服·信喵之野望 按键精灵脚本4.截卡

热门文章

  1. Python根据多个空格Split字符串
  2. 使用python模拟Simple方式连接ldap
  3. servlet 访问项目
  4. 使用PHP对数据库输入进行恶意代码清除
  5. 利用Powershell自动部署asp.net mvc网站项目 (一)
  6. Django模拟新浪微博的@功能
  7. java.util.ResourceBundle使用详解
  8. python r语言 作图_R语言低级绘图函数-rect
  9. python安装requests库pip不是_python pip安装requests时报错,怎么解决?
  10. jq onclick 定义_从HTML中的onClick属性调用jQuery方法