c 多執行緒程式設計(2)

2021-06-18 18:32:00 字數 1800 閱讀 1632

1 建立事件物件

handle createevent(

lpsecurity_attributeslpeventattributes

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