zoukankan      html  css  js  c++  java
  • 信号-总结

    【摘自《Linux/Unix系统编程手册》】

    从某种角度,可将信号视为进程间通信(IPC)的方式之一。然而,信号作为一种 IPC 机制却也饱受限制。首先,与其他 IPC 方法相比,对信号编程既繁且难,具体原因如下:

    • 信号的异步本质就意味着需要面对各种问题,包括可重入性需求、竞争条件及在信号处理器中正确处理全局变量。(如果使用 sigwaitinfo() 或者 signalfd() 来同步获取信号,这些问题中的大部分都不会遇到)
    • 没有对标准信号进行排队处理。即使是对于实时信号,也存在对信号排队数量的限制。这意味着,为了避免丢失信号,接收信号的进程必须想方设法通知发送者,自己为接收另一个信号做好了准备。要做到这一点,最显而易见的方法是有接收者向发送者发送信号。

    还有一个更深层次的问题,信号所携带的信息量有限:信号编号以及实时信号情况下一字之长的附加数据(一个整数或者一枚指针值)。与诸如管道之类的其它 IPC 方法相比,过低的带宽使得信号传输极为缓慢。

    由于上述种种限制,很少将信号用于 IPC。信号更常见的应用场景是用于进程同步,或者各种其他目的(比如,事件通知、作业控制以及定时器到期)。

  • 相关阅读:
    面试整理之DOM事件阶段
    头疼的闭包
    Bootstrap学习
    旁门左道通过JS与纯CSS实现显示隐藏层
    关于setTimeout的妙用前端函数节流
    兼容古董级IE小结
    Mongodb配置:error:10061 由于目标计算机积极拒绝,无法连接
    webpack入门前端必备
    团队成员的分应该怎么分?
    Start
  • 原文地址:https://www.cnblogs.com/jingyg/p/5190522.html
Copyright © 2011-2022 走看看