sleep时间过长处理方法
来源:互联网 发布:关于养生之道的软件 编辑:程序博客网 时间:2024/05/01 09:42
在运用线程时,run函数中可能会有sleep很长时间的情况,当sleep还未结束时,此时退出程序,可能会导致程序等待sleep无法退出的情况,此时我们可以采用分片sleep的方法:将一个sleep拆分为多个sleep,一旦收到stop信号后,就可以立即返回run函数,防止线程死等sleep的情况。
代码如下:
bool QCheck::WaitSleep( int nCount, const bool & bStopFlag ){ bool bRet = true; for( int i = 0; i < nCount; i++) { msleep( 100 );//sleep分片,每片100毫秒 if( bStopFlag ) { bRet = false; break; } } return bRet;}
run函数中可以这样写:
if(!WaitSleep(200,m_bIsStop ))//表示sleep了20秒{ return;}
置停止线程运行函数:
void QCheck::StopThread(){ m_bIsStop = true;}
阅读全文
1 0
- sleep时间过长处理方法
- 对页面文章过长的处理方法
- 页面表格字段过长的处理方法
- 数据列表显示字符过长处理方法
- 关于asp.net 一个处理时间过长的处理办法
- JSP处理数据时间过长时对话框处理
- php处理时间过长时返回空数据
- 后台处理请求时间过长导致页面超时
- 解决Android Studio Refreshing XXX Project时间过长的方法
- php处理标题过长,用.....代替省略的方法
- html对象中内容过长的处理方法
- Highcharts 饼图 数据字段过长的处理方法
- TextView文本过长时用省略号表示的处理方法
- 编译时间过长注意事项
- tomcat 启动时间过长
- 字符串过长显示处理
- 时间处理方法
- 晨魅--时间处理方法
- PHP中的AES算法
- Neo4j初步学习
- iOS
- ueditor抓取文件配置
- FFmpeg架构之I/O模块分析——讲得还行,主要是架构
- sleep时间过长处理方法
- JS中使用"data-"开头的属性及data()方法实现自定义属性
- 读OkHttp3文档记录
- Scaling Memcache At Facebook
- RabbitMq(三)
- iOS NSFileManager管理目录路径(3)——文件大小
- 3.LabVIEW_USB_I2C_AM2321B
- AutoIt:Windows自动化测试
- scala map排序