最近内部有个考试,提到 异步IO实现更精确定时器的题目,让我比较迷惑。由此开始寻找资料,想分析一下。
谁知几年不研究了,发现好多函数类似的,让人头晕。先就把一些函数列出来,等以后慢慢学习之吧。
sleep, usleep, nanosleep(AIX unix man里没有,可是可以使用): 同步等待
alarm, ualarm: 异步信号通知
settimer, setitimer: 异步信号通知,
select : 精确到10ms(毫秒)级的 定时。
aio 异步通知: 还不确定怎么使用。
----------------------------------------------------------------------------------
setitimer 比较 alarm
不同: setitimer 可以设置第一次的调用间隔时间,可能有些好处,如希望第一次信号 发生时已经完成了一些系统初始化的工作 ,而这些工作最好不要有信号发生。
相同: # 触发方式: 都是 发送 SIGALRM信号
# 信号都是发送给调用 进程。
一下是连接参考 itimer 的使用方法:
linux上定时函数 setitimer 的使用介绍
setitimer()为Linux的API,并非C语言的Standard Library,setitimer()有两个功能,一是指定一段时间后,才执行某个function,二是每间格一段时间就执行某个function,以下程序demo如何使用setitimer()。
#