不可靠信号

4.不可靠的信号

很多人看到了不可靠的信号这一章节,就认为因为额信号会丢失所以是不可靠的,其实这么理解是不对的,不可靠的信号是指信号的行为不可靠。

信号的处理就好比现在 LZ 正在写这篇博文,忽然来了一个电话,于是打断了手头的工作,先接电话去了。

信号处理函数的执行现场不是程序员布置的,而是内核布置的,因为程序中不会有调用信号处理函数的地方。

同一个信号处理函数的执行现场会被布置在同一个地方,所以当一次信号处理函数未执行完成时再次触发了相同的信号,信号处理函数发生了第二次调用,

则第一次调用的执行现场会被覆盖。

5.可重入函数

可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。

//c code

static int tmp;

void func1(int* x, int* y) {

    tmp=*x;

    *x=*y;

    *y=tmp;

}

void func2(int* x, int* y) {

    int tmp;

    tmp=*x;

    *x=*y;

    *y=tmp;

}

func1是不可重入的,func2是可重入的。因为在多线程条件下,操作系统会在func1还没有执行完的情况下,切换到另一个线程中,那个线程可能再次调用func1,

这样状态就错了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • 计算机系统漫游 代码从文本到可执行文件的过程(c语言示例):预处理阶段,处理 #inlcude , #defin...
    willdimagine阅读 3,626评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,914评论 18 139
  • 晚上带筱晓睡觉,半天没有睡着,自己坐在床上开始玩起来。我有些不耐烦的情绪上来。哄睡她后,自己再想想,这个不耐烦的情...
    玉露君阅读 736评论 0 0
  • 你是天意 是靡靡的馬蹄 是陽光,溫暖了我的四季 你是命運 是最美的風景 是繁星,閃亮了我的生命 你是空氣 是河流和...
    七贤庄阅读 306评论 0 1