alarm()和pause()

2023-10-14 02:48
文章标签 alarm pause

本文主要是介绍alarm()和pause(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用alarm函数定时,然后通过pause等待alarm函数的信号

1:使用alarm函数的时候要注意alarm函数的覆盖性,即在一个进程中采用一次alarm函数则该进程之前的alarm函数将失效。

2:pause函数为将进程挂起,然后等待信号。

3:因为alarm函数在定时器到点的时候产生的信号默认为让该进程退出。因此本代码运行5秒然后直接退出,终端不会输出printf中的语句。

 

tips:挂起和阻塞的区别为,挂起是进程主动行为,阻塞是进程的被动行为。

*************************************/

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

 

int main(int argc,char *argv[])

{

       intret;

      

       ret=alarm(5);

       pause();

       printf("willthis be printed?\n");

}


如果在执行完alarm(second)这句,在pause()这句之前就发生SIGALRM信号,那么程序会怎么样呢?答案是永远暂停在那里!当然了,我们这里使用的是alarm这个函数来产生SIGALRM信号,最小也要1秒以后产生,1秒以后pause()函数早已执行,因此一般情况不会出现bug,毕竟由于alarm函数特殊,如果是其他信号产生机制呢?所以对于这类极小概率的bug问题,在学习时要注意!

这篇关于alarm()和pause()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/207606

相关文章

【OS】AUTOSAR OS Alarm实现原理

目录 前言 正文 1.OsAlarm配置 1.1 工具配置Alarm 1.1.1. 顶层OsAlarm配置 1.1.2. OsAlarmAction 1.1.3. OsAlarmAutostart 1.2 配置代码分析 1.2.1. Os_JobConfigType 2.OsAlarm实现 3.总结 前言 在《【OS基础】符合AUTOSAR标准的RTAOS-Ala

Inna and Alarm Clock

Inna and Alarm Clock time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Inna loves sleeping very much, so she needs n ala

ios animation的暂停pause、恢复resume

项目中要用到动画的控制,比如说暂停、恢复继续等,先看代码:(很容易实现) -(void)pauseLayer:(CALayer*)layer{CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];layer.speed = 0.0;layer.timeOffset = pausedT

android Alarm闹钟发送广播播放音乐

通过网上的例子  自己根据相关功能修改的  如有不合理的地方  请提出来  互相学习 一共有3个类 MainActivity.java 主程序 AlarmReceiver.java 广播接收器 MusicService.java service播放音乐 MainActivity.java package com.yqy.yqy_ala

FFplay源码分析-pause

《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 本系列 以 ffmpeg4.2 源码为准,下载地址:链接:百度网盘 提取码:g3k8 FFplay 源码分析系列以一条简单的命令开始,ffplay -i a.mp4。a.mp4下载链接:百度网盘,提取码:nl0s 。 ffplay 的大部分主要逻辑已经讲完了,本文主要讲解 ffp

Android的定时任务Alarm与Timer类的使用

主要使用AlarmManager manager=(AlarmManager)getSystemService(Context。ALARM_SERVICE) 使用manager。set()设置定时任务。 package com.example.servicebestpractice; import android.app.Activity; import android.content.I

Codeforces Round #229 (Div. 2) A. Inna and Alarm Clock

A. Inna and Alarm Clock time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Inna loves sleeping very much, so she needs n

Linux alarm signal (SIGALRM) to detach process isAlive

题记 最近做项目遇到的问题,程序跑了多个process,每个process都是相互独立的,为了解耦,类似于微服务的架构,我们要求系统可以detach 到 主线程跑飞,死循环等其他bug 问题,最初的设计方案是:每个process 都会给每一个monitor的process 去发送keep alive 消息,由monitor去收集每个module的keep alive消息,然后去判断是否proce

【LinuxC语言】信号相关函数——kill、raise、pause与alarm

文章目录 前言一、函数介绍1.1 kill() 函数1.2 raise() 函数1.3 pause() 函数1.4 alarm() 函数 总结 前言 在Linux环境下,信号是一种重要的进程间通信机制,用于处理异步事件和控制进程行为。除了使用signal函数来设置信号处理函数外,还有一些其他的信号相关函数,如kill、raise、pause和alarm,它们提供了更多的信号处

AUTOSAR OS Alarm讲解

Alarm定义 使用中断ISR可以构建以不同速率激活任务的系统。然而,对于复杂的系统,这种方式效率不高且不切实际。alarm(警报)提供了一种更方便、更灵活的调度系统的方式。 alarm由两部分组成: 一个计数器一个或多个与计数器关联的alarm alarm指定当达到特定的计数器值时要执行的动作。系统中的每个计数器都可以附加任意数量的alarm。 当计数器的值等于附加在该计数器上的警报