1 建立事件物件
handle createevent(lpsecurity_attributes
lpeventattributes,// sdboolbmanualreset
,// reset typeboolbinitialstate
,// initial statelpctstrlpname
// object name);
引數:
lpeeventattributes 安全性,一般為null
bmanualreset 建立事件物件的形式,若為true,則為人工重置的事件物件,false 則為機器重置的物件
binitialstate 建立事件物件的狀態,若為true,則為有訊號狀態,否則為無訊號狀態
lpname 建立事件物件的名字,可為null
返回值
返回事件物件的控制代碼handle
2 設定事件物件
handlehevent// handle to event
); 設定事件物件為有訊號狀態
bool resetevent(handlehevent
// handle to event
); 設定事件物件為無訊號狀態
bool setevent(#include #include using namespace std;dword winapi threadproc1(lpvoid lpparameter );
dword winapi threadproc2(lpvoid lpparameter );
handle handle;
int tickets = 100;
void main()
dword winapi threadproc1(lpvoid lpparameter)
{ while(1)
{ waitforsingleobject(handle,infinite);
if(tickets > 0)
{ sleep(1);
cout<<"thread1 sell"<0)
{ sleep(1);
cout<<"thread2 sell"《人工重置的事件物件 和 自動重置的事件物件的區別
當人工重置的事件物件的到通知,等待該事件物件的所有執行緒變為可排程執行緒,當自動重置的事件物件得到通知,等待該事件的執行緒只有乙個變為可排程執行緒
c 多執行緒程式設計筆記2
同步的意思是在多執行緒程式中,為了使兩個或多個執行緒之間,對分配臨界資源的分配問題,要如何分配才能使臨界資源在為某一線程使用的時候,其它執行緒不能再使用,這樣可以有效地避免死鎖與髒資料。髒資料是指兩個執行緒同時使用某一資料,造成這個資料出現不可預知的狀態!在 c 中,對執行緒同步的處理有如下幾種方法...
筆記 C 多執行緒程式設計(2)
拒絕自閉vs2010版本,不支援該標頭檔案 include事先說明 1.一般來說,子執行緒也要從乙個函式開始執行,所以建立乙個執行緒的同時,我們要宣告乙個函式 2.一般情況下,主線程執行完畢後,未完成的子執行緒會被系統強行關閉 方法一 宣告函式 首先宣告乙個子執行緒的函式,其次在主線程中定義乙個th...
多執行緒程式設計2
訊號量同步 include include include include include 訊號量函式定義 include void thread fun void arg sem t bin sem define worksize 1024 char workarea worksize int m...