用线程同步函数超时机制做计时器
来源:互联网 发布:新网互联域名代理登录 编辑:程序博客网 时间:2024/06/07 11:12
最近项目中看到代码中有很奇怪的写法,线程循环用到windows线程同步方法的事件。但是这个事件不是用来做同步,用来当计时器使用,如下:
thread function:
while(m_hEvent && WaitForSingleObject(m_hEvent, nTimeout) != WAIT_OBJECT_0)
{
do somthing;
};
while中表达式一直为TRUE,这样每隔nTimeout时间就可以定时干些事情,比如心跳。同样的功能,用标志位+sleep函数不也可以实现么,而且系统开销小。想了半天后突然发现,这样写的话在程序结束时,SetEvent(m_hEvent)后,这个循环可以立即结束。但是用sleep,如果正好走到sleep,那么程序就得阻塞nTimeout长的时间。用事件方式的话可以及时的退出循环,而不引起阻塞。很精妙的写法。
阅读全文
0 0
- 用线程同步函数超时机制做计时器
- 线程同步(计时器)
- 多线程同步执行函数,超时后结束掉线程
- 线程同步之可等的计时器
- 线程并发库(计时器,同步)
- JavaScript基于计时器的伪线程机制
- 线程的同步机制
- windows 线程同步机制
- linux线程同步机制
- Boost 线程同步机制
- nachos 线程同步机制
- 线程同步机制
- pthread线程同步机制
- 线程同步-event机制
- 线程同步机制初识
- window 线程同步机制
- 进程/线程 同步机制
- 进程线程同步机制
- Memeory Monitor ---内存分配
- Python中进程创建的两种方式
- webpack
- python基础2之数据类型---元组
- Navicat for MySQL 新建查询时,报can't create file ...系统找不到指定的文件夹出现问题
- 用线程同步函数超时机制做计时器
- 什么是编程语言
- ionic3的学习入门(angular2)语法的入门
- java基础-编译错误-编码GBK的不可映射字符
- Eclipse在Liunx16.04安装过程
- PAT甲级 1017. Queueing at Bank (25)
- 使用ssh框架写一个基本的登录注册页面
- Bmob后端云的基本使用
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。