社区
C++ 语言
帖子详情
定时器与线程sleep的区别与优劣?
NesTa_xP
2011-10-09 02:30:24
现在有一个任务需要定时启动执行。
请问是使用定时器(CreateWaitableTimer)好一些还是单独开一个线程循环sleep一定时间好一些?请说明原因,谢谢!
...全文
2486
18
打赏
收藏
定时器与线程sleep的区别与优劣?
现在有一个任务需要定时启动执行。 请问是使用定时器(CreateWaitableTimer)好一些还是单独开一个线程循环sleep一定时间好一些?请说明原因,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NesTa_xP
2011-10-11
打赏
举报
回复
我想是否可以单独开启一个线程,然后在线程里面使用定时器CreateWaitableTimer。
不知道CreateWaitableTimer是否支持在子线程里使用
only_lonely
2011-10-10
打赏
举报
回复
差不多 定时器更精确一些,sleep还要考虑到线程的调度因素。
赵4老师
2011-10-10
打赏
举报
回复
通常定时半分钟以上,sleep半分钟以下。
laslull
2011-10-10
打赏
举报
回复
如果定时调用很频繁 我觉得另起线程sleep比较好
luciferisnotsatan
2011-10-10
打赏
举报
回复
sleep只能精确到毫秒,linux下的sleep只能精确到秒。
我要戒烟了
2011-10-10
打赏
举报
回复
CreateWaitableTimer是系统函数,比自己写线程循环模拟定时,效率高(只要是系统函数,一般效率都比自己写的同样功能的函数效率高或是一样)
自己写线程模拟这个功能优点是整个定时的过程可控(你可以附加一些额外的逻辑在定时线程中),缺点是效率会低
NesTa_xP
2011-10-10
打赏
举报
回复
[Quote=引用 10 楼 qq120848369 的回复:]
引用 9 楼 nesta_xp 的回复:
引用 7 楼 qq120848369 的回复:
其实定时器是单线程的,起一个线程sleep是多线程问题,其中的同步问题你自己注意.
请问,如果定时器是单线程的,时间到了,执行某个函数,此时,主线程会不会是阻塞状态?
是的。
[/Quote]
我可能不期望主线程阻塞,是不是就只有考虑使用线程+sleep的方式了?
乔巴好萌
2011-10-09
打赏
举报
回复
定时器好像不能创建多个
以前曾经创建16个定时器后 再创建就不成功了
而sleep就没这个问题
精确度方面 windows不是实时OS 都有误差的
qq120848369
2011-10-09
打赏
举报
回复
[Quote=引用 9 楼 nesta_xp 的回复:]
引用 7 楼 qq120848369 的回复:
其实定时器是单线程的,起一个线程sleep是多线程问题,其中的同步问题你自己注意.
请问,如果定时器是单线程的,时间到了,执行某个函数,此时,主线程会不会是阻塞状态?
[/Quote]
是的。
NesTa_xP
2011-10-09
打赏
举报
回复
[Quote=引用 7 楼 qq120848369 的回复:]
其实定时器是单线程的,起一个线程sleep是多线程问题,其中的同步问题你自己注意.
[/Quote]
请问,如果定时器是单线程的,时间到了,执行某个函数,此时,主线程会不会是阻塞状态?
pathuang68
2011-10-09
打赏
举报
回复
建议用CreateWaitableTimer
qq120848369
2011-10-09
打赏
举报
回复
其实定时器是单线程的,起一个线程sleep是多线程问题,其中的同步问题你自己注意.
Louistao
2011-10-09
打赏
举报
回复
我想起了JAVA的计时器,相当方便。。。
SmartAlex_peng
2011-10-09
打赏
举报
回复
简单的用定时器比较好,定时器准确来说定时效果不好,程序占用资源比较多,特别是多个定时器时;复杂的程序用线程好,特别是多线程,使用线程可以优化资源,提高效率。不过没有具体的优劣,要看具体情况。
PG
2011-10-09
打赏
举报
回复
用这个好。。CreateWaitableTimer
疯魔症
2011-10-09
打赏
举报
回复
CreateWaitableTimer和windows下消息循环的定时器有什么区别么。
bdmh
2011-10-09
打赏
举报
回复
定时任务,用CreateWaitableTimer吧,优劣我觉得谈不上,方便到时肯定的,可以定时多长时间一次,也可以某个时间执行
yujie_v
2011-10-09
打赏
举报
回复
视具体情况而定吧。
定时器和sleep都有优缺点的。
DelayTest.zip
以上四种方法各有
优劣
,实际使用时应根据需求选择合适的方式。例如,如果需要精确控制时间间隔,
定时器
是不错的选择;如果追求高性能和
线程
管理的便捷性,GCD更合适;而当涉及对象生命周期管理时,performSelector...
while(ture) +
sleep
()与Timer 作为定时查询的比较
while(ture) +
sleep
()与Timer 作为定时...2,while循环加
sleep
延时的作用效果和
定时器
是否一样,它们有什么
区别
; 一般很少将
Sleep
与while写在一起,
Sleep
的作用是
线程
暂停,此时
线程
得不到处理时间.处于休眠状态.定时...
Java中4类
定时器
比较总结
定时器
总结 梳理了下目前用过的
定时器
实现方案: JDK的Timer包 Thread scheduledThreadPool Spring Timer(推荐)
定时器
的启动时间主要有以下: 随tomcat启动而启动——原生servlet(落后的方式) 随Spring启动而...
android
定时器
使用的比较,Android中几种
定时器
的总结和比较
在android中,一般有下面几种方式实现定时任务:采用Handler与
线程
的
sleep
(long)方法采用Handler的postDelayed(Runnable, long)方法采用Handler与timer及TimerTask结合的方法采用采用AlarmManager和...
C++中经典的
定时器
库与实现方式
定时器
已触发" << std::endl; }, 2000); auto id2 = timer.setInterval([]() { static int count = 0; std::cout << "周期性
定时器
触发,次数: " << ++count << std::endl; ...
C++ 语言
65,212
社区成员
250,516
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章