定时函数
来源:互联网 发布:A.join() js 编辑:程序博客网 时间:2024/05/21 21:44
定时函数,用于让程序等待一段时间或安排计划任务
首选timerfd_* 的原因:
sleep / alarm / usleep 在实现时有可能用了信号 SIGALRM,在多线程程序中处理信号是个相当麻烦的事情,应当尽量避免
nanosleep 和 clock_nanosleep 是线程安全的,但是在非阻塞网络编程中,绝对不能用让线程挂起的方式来等待一段时间,程序会失去响应。正确的做法是注册一个时间回调函数。
getitimer 和 timer_create 也是用信号来 deliver 超时,在多线程程序中也会有麻烦。
timer_create 可以指定信号的接收方是进程还是线程,算是一个进步,不过在信号处理函数(signal handler)能做的事情实在很受限。
timerfd_create 把时间变成了一个文件描述符,该“文件”在定时器超时的那一刻变得可读,这样就能很方便地融入到 select/poll 框架中,用统一的方式来处理 IO 事件和超时事件,这也正是 Reactor 模式的长处
sleep / alarm / usleep 在实现时有可能用了信号 SIGALRM,在多线程程序中处理信号是个相当麻烦的事情,应当尽量避免
nanosleep 和 clock_nanosleep 是线程安全的,但是在非阻塞网络编程中,绝对不能用让线程挂起的方式来等待一段时间,程序会失去响应。正确的做法是注册一个时间回调函数。
getitimer 和 timer_create 也是用信号来 deliver 超时,在多线程程序中也会有麻烦。
timer_create 可以指定信号的接收方是进程还是线程,算是一个进步,不过在信号处理函数(signal handler)能做的事情实在很受限。
timerfd_create 把时间变成了一个文件描述符,该“文件”在定时器超时的那一刻变得可读,这样就能很方便地融入到 select/poll 框架中,用统一的方式来处理 IO 事件和超时事件,这也正是 Reactor 模式的长处
注意:也可以使用signalfd 函数为信号创建一个文件描述符,把信号当文件来读
0 0
- 定时函数
- 定时函数
- setitimer() 定时函数
- Java 定时执行函数
- setitimer() 定时函数
- 定时启动任务函数
- setitimer定时函数
- 定时函数setitimer()
- 定时执行函数
- 定时函数setitimer
- js 定时函数
- js定时执行函数
- 常用的定时函数
- javaScript---定时函数
- js 定时函数
- JavaScript定时函数
- Navicat的定时函数
- JavaScript定时函数
- Linux中断(interrupt)子系统之四:驱动程序接口层 & 中断通用逻辑层
- Node.js 文件系统
- MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作
- C程序反汇编代码分析
- 64位Ubuntu安装32位环境ia32-libs。
- 定时函数
- UVa221 - Urban Elevations
- java技巧:反射判断field类型方法
- eclipse快捷键
- 【小松教你手游开发】【unity实用技能】unity shader 教程
- 关闭android studio自动存档功能
- 简单的封装,block,AFNetworking的结合应用
- dynmic_debug动态控制kernel下的日志输出
- C++ lib链接异常的总结