多執行緒多工學習筆記 三

2021-09-30 07:11:39 字數 1051 閱讀 5917

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...