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

信号signal与信号量semaphore的区别

信号signal,软中断信号,进程间异步通信机制;

  • 信号来源包括硬件和软件两方面,例如终端键入ctrl+c(SIGINT)、ctrl+z(SIGTSTP)等按键,硬件检测错误,kill()、abort()、alarm()等函数产生信号;
  • 通常是内核向用户态进程发送信号。系统中的普通进程由于权限问题,无法向更高权限的进程发送信号。
  • 进程可以调用signal()注册信号处理函数,捕获SIGILL、SIGSEGV等信号,并做忽略、默认(一般是终止运行)、自定义操作处理。

信号量semaphore,本质是一个计数器,进程或线程间通信的一种同步机制;

  • 有posix信号量和system V信号量,以前者为例:
  • 信号量来自sem_init()初始化,通过共享内存拥有该信号量的线程,一个线程调用sem_post()释放信号量,另一个线程调用sem_wait()阻塞等待信号量。

题外话
对于进程来说,信号这种通信方式是自由的,进程不用做什么,信号就会到;也是无奈的,收到内核这个超级boss发送的信号,通常默认就挂了。而信号量更像循规蹈矩干活的,使用双方有来有往。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于STM32开发的智能植物浇水系统
  • 音视频相关知识
  • 算法的学习笔记—链表中倒数第 K 个结点(牛客JZ22)
  • 激光雷达点云投影到图像平面
  • CSS方向选择的艺术:深入探索:horizontal和:vertical伪类
  • Ansible可视化管理之web界面集成使用探究(未完待续)
  • 2024年杭州市网络与信息安全管理员(网络安全管理员)职业技能竞赛的通知
  • 【STM32嵌入式系统设计与开发拓展】——14_定时器之输入捕获
  • 用关系图和示例解释异步/等待
  • c++动态数组new和delete
  • kubernetes k8s Daemonset 控制器 原理 讲解 配置
  • 微前端架构下的多租户支持:实现与最佳实践
  • Android app安装第三方应用
  • Linux服务器运维管理面板1panel
  • 【技术方案】技术解决方案过程文件(Word原件)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 0基础学习移动端适配
  • Android系统模拟器绘制实现概述
  • HomeBrew常规使用教程
  • Iterator 和 for...of 循环
  • learning koa2.x
  • Material Design
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • rc-form之最单纯情况
  • 半理解系列--Promise的进化史
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 那些年我们用过的显示性能指标
  • 前言-如何学习区块链
  • 说说动画卡顿的解决方案
  • 通过npm或yarn自动生成vue组件
  • 我看到的前端
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # Kafka_深入探秘者(2):kafka 生产者
  • # windows 安装 mysql 显示 no packages found 解决方法
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • ###C语言程序设计-----C语言学习(6)#
  • ###STL(标准模板库)
  • #php的pecl工具#
  • #stm32驱动外设模块总结w5500模块
  • $nextTick的使用场景介绍
  • ()、[]、{}、(())、[[]]命令替换
  • (8)STL算法之替换
  • (LeetCode) T14. Longest Common Prefix
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转) 深度模型优化性能 调参
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net 获取url的方法
  • .NET 直连SAP HANA数据库
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)