[问题] 如何在thread 不使用delay 可做定时执行?

楼主: liang168 (小强)   2018-08-27 21:48:19
在linux thread 里面
使用到while(1)无穷回圈时
一般想在定时如200ms 执行一个副程式很多都是使用加一个delay
但又不想影响到在同个loop循环下面的程式,最少是还没有执行要加的
200ms的副程式,是否有方式可以做重复定时后执行? Time 可以使用?
作者: cs8425 (cs)   2018-08-27 23:45:00
timer、timerfd查查? 我是偷懒直接用libuv包好的
作者: uorol (′‧ω‧‵)   2018-08-28 13:24:00
看不懂你的问题...
作者: leolarrel (真.粽子无双)   2018-08-29 11:43:00
是否可以在thread中的数个工作再拆成个别thread??
楼主: liang168 (小强)   2018-08-29 16:58:00
当然不行加新的thread
作者: cs8425 (cs)   2018-08-29 17:29:00
如果下面其他程式跑到一半刚好200ms的时候 你想要怎处理?
作者: filiaslayers (司马云)   2018-08-29 18:19:00
你的问题跟thread完全无关吧...
作者: ckvir (ckvir)   2018-08-29 23:22:00
为啥不开2个thread 然后分别跑在不同cpu 上,其中一个 thread 就能设多久跑一次了
作者: leolarrel (真.粽子无双)   2018-08-30 08:59:00
不能再加新的thread的原因是?
作者: cs8425 (cs)   2018-08-31 02:35:00
还是没回到我的问题阿 而且加thread不会动到架构吧
作者: corevalue (CCC)   2018-08-31 10:16:00
struct timeval idle_t; gettimeofday(&idle_t, NULL);idle_t_cur = (idle_t.tv_sec * 1000.0) + (idle_t.tv_if ( (idle_t_cur) >= (idle_t_pre + (200)))
作者: leolarrel (真.粽子无双)   2018-08-31 10:44:00
我的意见是,不开新thread来处理,以后副作用更大,技术债欠的可不轻至于不加thread的解决方式就如同corevalue大所提的,自行busy loop判断timestamp,祝你好运
作者: maydaychaaaa (Halo)   2018-09-04 05:25:00
如果要求时间准的话还是timer 比较好既有的程式架构既然没办法满足新需求,那为什么不能改?
作者: leolarrel (真.粽子无双)   2018-09-05 17:23:00
所以修改成:"主管认为架构不能修改"应该就比较精准了
作者: uranusjr (←這人是超級笨蛋)   2018-09-07 19:13:00
说真的如果主管认为不需要改, 他有义务解答你的问题不应该搞到员工需要上网问别人
作者: enthos (影斯作业系统)   2018-09-08 20:53:00
blog.csdn.net/it_liuwei/article/details/78326041
作者: DontGoIntel (末日硬特尔)   2018-09-09 10:22:00
sigalarm
作者: F04E (Fujitsu)   2017-01-08 17:23:00
去问你主管怎么实做比较好啊

Links booklink

Contact Us: admin [ a t ] ucptt.com