[問題] 如何在thread 不使用delay 可做定時執行?
在linux thread 裡面
使用到while(1)無窮回圈時
一般想在定時如200ms 執行一個副程式很多都是使用加一個delay
但又不想影響到在同個loop迴圈下面的程式,最少是還沒有執行要加的
200ms的副程式,是否有方式可以做重複定時後執行? Time 可以使用?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.54.79
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1535377702.A.D4F.html
→
08/27 23:45,
6年前
, 1F
08/27 23:45, 1F
推
08/28 13:24,
6年前
, 2F
08/28 13:24, 2F
我的過
我目前有一個現成的程式,我在其中一個thread 中的while loop,裡面加一個副程式
我想以time計時方式每200ms跑一次,當這200ms時間還沒到,就先跑下面的其他程式
只要200ms時間到就先跑我加入的副程式,己知不能用delay() 但要一直重複做200ms
跑副程式
→
08/29 11:43,
6年前
, 3F
08/29 11:43, 3F
→
08/29 16:58,
6年前
, 4F
08/29 16:58, 4F
→
08/29 17:29,
6年前
, 5F
08/29 17:29, 5F
推
08/29 18:19,
6年前
, 6F
08/29 18:19, 6F
→
08/29 23:22,
6年前
, 7F
08/29 23:22, 7F
→
08/29 23:22,
6年前
, 8F
08/29 23:22, 8F
→
08/30 08:59,
6年前
, 9F
08/30 08:59, 9F
不能加新的thread原因很簡單,這個是維護之前人寫的程式架構己固定,主管也不會同意
新加入的功能只是做更新資料動作,所以要每200ms重複做,時間沒到就先做
舊有的程式,200ms時間到再做資料更新,因還有舊程式在所以不能使用delay()
這樣加會導致舊程式不正常
→
08/31 02:35,
6年前
, 10F
08/31 02:35, 10F
→
08/31 10:16,
6年前
, 11F
08/31 10:16, 11F
→
08/31 10:16,
6年前
, 12F
08/31 10:16, 12F
→
08/31 10:17,
6年前
, 13F
08/31 10:17, 13F
→
08/31 10:44,
6年前
, 14F
08/31 10:44, 14F
→
08/31 10:45,
6年前
, 15F
08/31 10:45, 15F
→
08/31 10:46,
6年前
, 16F
08/31 10:46, 16F
→
08/31 10:47,
6年前
, 17F
08/31 10:47, 17F
推
09/04 05:25,
6年前
, 18F
09/04 05:25, 18F
→
09/04 05:26,
6年前
, 19F
09/04 05:26, 19F
→
09/04 05:26,
6年前
, 20F
09/04 05:26, 20F
沒人說現有的架構不能修改,只是有主管在把關,而且他認為不需加新的thread
只需對原thread修改就可以了
※ 編輯: liang168 (220.133.54.79), 09/05/2018 11:40:57
→
09/05 17:23,
6年前
, 21F
09/05 17:23, 21F
→
09/07 19:13,
6年前
, 22F
09/07 19:13, 22F
→
09/07 19:13,
6年前
, 23F
09/07 19:13, 23F
推
09/08 20:53,
6年前
, 24F
09/08 20:53, 24F
推
09/09 10:22,
6年前
, 25F
09/09 10:22, 25F
噓
01/08 17:23,
7年前
, 26F
01/08 17:23, 26F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章