信号驱动任务执行(pause、sigsuspend函数)

本文介绍如何利用pause和sigsuspend函数实现信号驱动的任务执行过程,包括两种主要方式:结合使用sigprocmask与pause,以及直接使用sigsuspend。文章详细解释了这两种方式的工作原理及其在信号频繁发送情况下的表现。

信号驱动任务指的是通过信号来驱动任务的执行,每发送一次信号,任务就执行一次。实现该目的所需的函数就是 pause 或者 sigsuspend,pause和sigsuspend函数可以暂停当前进程,直至收到信号才会继续运行之后的程序。


目录

1、认识 pause / sigsuspend 函数

(1) pause 函数

(2) sigsuspend 函数

2、信号驱动任务执行的两种方式

(1) sigprocmask + pause

(2) sigsuspend


1、认识 pause / sigsuspend 函数

(1) pause 函数

pause 函数的作用是暂停当前进程(进入休眠状态),直至收到信号(任意信号),才会唤醒当前进程。

因为信号的处理动作有终止、忽略、捕捉、屏蔽,所以也对应了下面四种情况:

  • 信号的默认处理动作是终止,进程直接终止。
  • 信号的默认处理动作是忽略,进程继续处于挂起状态。
  • 信号的默认处理动作是捕捉,进程先调用信号处理函数,然后解除挂起,执行下一步。
  • 信号的默认处理动作是屏蔽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值