[問題] 如何在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