hurry up and wait
執行緒必須等待結束,如果持續檢查
getexitcodethread()
的返回值,這種
busy loop
的方式是一種非常耗資源的方法。
win32
的辦法是使用
waitforsingleobject()
。dword waitforsingleobject( handle hhandle, dword dwmilliseconds);
引數:hhandle
:指定物件或事件的控制代碼;
dwmilliseconds:
等待時間,以毫妙為單位,當超過等待時間時,此函式將返回。如果該引數設定為
0,則該函式立即返回,如果設定為
infinite
,則該函式直到有訊號才返回。
返回值:
如果此函式成功,該函式的返回值標識了引起該函式返回的事件。返回值如下:
wait_abandoned
(0x00000080l
)wait_object_0
(0x00000000l
)指定的物件處於有訊號狀態。
wait_timeout
(0x00000102l
)超過等待時間,指定的物件處於無訊號狀態
如果失敗,返回
wait_failed
;備註:
此函式檢查指定的物件或事件的狀態,如果該物件處於無訊號狀態,則呼叫執行緒處於等待狀態,此時該執行緒不消耗
cpu時間
注意該函式已經有了
sleep()
的功能,相當於乙個新版的
sleep
函式,因此避免兩者重複使用。
等待多個物件
dword waitformultipleobjects(
dword ncount,
const handle *lphandles,
bool bwaitall,
dword dwmilliseconds
);
多工和多執行緒 1
建立乙個執行緒的api函式叫做createthread hthread createthread security attributee,dwstacksize,threadproc,pparam,dwflags,idthread 大部分的windows程式設計師都會傾向於使用c的執行時庫函式 be...
Shell 實現多執行緒(多工)
bin bash all num 10 a date h m s for num in seq1 do done b date h m s echo e starttime t a echo e endtime t b 在命令的末尾加 符號,則命令將在後台執行,這樣後面的命令不需要等待該命令執行完再...
多工 執行緒
建立函式 建立執行緒物件,並制定函式 開啟執行緒 import threading import time defwork1 1.定義函式 for i in range 5 print 正在掃地 i time.sleep 1 defmain 測試執行緒的基本使用 2.建立執行緒物件 t1 threa...