社区
C++ 语言
帖子详情
定时器与线程sleep的区别与优劣?
NesTa_xP
2011-10-09 02:30:24
现在有一个任务需要定时启动执行。
请问是使用定时器(CreateWaitableTimer)好一些还是单独开一个线程循环sleep一定时间好一些?请说明原因,谢谢!
...全文
2004
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都有优缺点的。
while(ture) +
sleep
()与Timer 作为定时查询的比较
while(ture) +
sleep
()与Timer 作为定时查询的比较 1,我的程序改动导致功能失败,问题出在哪里,难道消息响应机制不同,这一点请讲解详细一点; 这个一句话说明就是:
定时器
并不是多
线程
的. 2,while循环加
sleep
延时的作用效果和
定时器
是否一样,它们有什么
区别
; 一般很少将
Sleep
与while写在一起,
Sleep
的作用是
线程
暂停,此时
线程
得不到处理时间.处于休眠状态.定时...
android
定时器
使用的比较,Android中几种
定时器
的总结和比较
在android中,一般有下面几种方式实现定时任务:采用Handler与
线程
的
sleep
(long)方法采用Handler的postDelayed(Runnable, long)方法采用Handler与timer及TimerTask结合的方法采用采用AlarmManager和BroadcastReceiver结合的方式下面进行分别介绍和比较:一、采用Handler与
线程
的
sleep
(long)方法...
Java中4类
定时器
比较总结
定时器
总结 梳理了下目前用过的
定时器
实现方案: JDK的Timer包 Thread scheduledThreadPool Spring Timer(推荐)
定时器
的启动时间主要有以下: 随tomcat启动而启动——原生servlet(落后的方式) 随Spring启动而启动 其他时间(根据业务逻辑确定) 下面具体介绍每一种的实现及利弊,最后会说明分布式场景下
定时器
如何正确设置的思路,首先说...
java
定时器
的使用
如果定时调用很频繁,另起
线程
sleep
比较好,一般半分钟以上 用定时,半分钟以下
sleep
。 简单的用
定时器
比较好,
定时器
准确来说定时效果不好,程序占用资源比较多,特别是多个
定时器
时;复杂的程序用
线程
好,特别是多
线程
,使用
线程
可以优化资源,提高效率。不过没有具体的
优劣
,要看具体情况。
定时器
类Timer在java.util包中。使用时,先实例化,然后使用实例的schedu
python不要再使用while死循环,使用
定时器
代替效果更佳!
这种方式虽然能达到效果,但是说不定什么时候就直接崩溃了。至此,我们便可以将需要保持一直处于执行状态的业务函数,也就是这里的print_datetime函数作为定时中的任务执行。在python开发的过程中,经常见到小伙伴直接使用while True的死循环+
sleep
的方式来保存程序的一直运行。然后,我们准备需要使用的定时任务模块apscheduler,可以选择pip的方式进行安装,我个人一直使用的是这样方式。下面是我列出的比较常见的apscheduler定时任务的执行方式,供小伙伴们参考,提出宝贵意见。
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章