VC多執行緒的同步

2021-06-06 19:49:56 字數 829 閱讀 6154

1.利用事件物件同步

事件分為:人工重置的事件物件和自動重置的事件物件。

人工重置的事件物件:收到通知,等待的所以執行緒變為可排程執行緒。

自動重置的事件物件 :收到通知,等待的所以執行緒只有乙個變為可排程。同時作業系統會將事件物件設定為無訊號狀態。

為了實現執行緒間的同步,不應該使用人工重置的事件物件,而應該使用自動重置的事件物件。

handle   g_hevent = createevent(null//安全屬性,

false//建立自動重置的事件物件,

false//初始訊號狀態,

null//匿名事件

setevent(g_hevent);將事件設定為有訊號,只有在有訊號時,waitforsingleobject(g_hevent, infintte)才不會阻塞。

resetevent(g_hevent);將事件設定為無訊號。

例項**摘自孫鑫老師:

#include

#include

dword winapi fun1proc(

lpvoid lpparameter   // thread data

);dword winapi fun2proc(

lpvoid lpparameter   // thread data

);int tickets=100;

handle g_hevent;

void main()

dword winapi fun1proc(

lpvoid lpparameter   // thread data

)else

}return 0;

}

VC 多執行緒同步方式操作串列埠

include includeusing namespace std dword winapi commreceive lpvoid lpparameter dword winapi commsend lpvoid lpparameter handle m hcom int main 設定緩衝區大小...

VC 執行緒同步

2008 09 02 10 47 02 分類 vc程式設計 標籤 字型大小 大中小訂閱 什麼是同步 同步 不是指平常所說的兩件事情同時進行。它的目的是使多個執行緒之間協調工作,而且常常是避免兩個執行緒同時進行某些操作,比如同時訪問同乙個共享資源。一般來說,同步是通過暫時將會發生衝突操作的某個執行緒暫...

VC 多執行緒

1.createthread函式 引數說明 2.createmutex handle createmutex lpsecurity attributeslpmutexattributes,sd boolbinitialowner,initial owner lpctstrlpname object ...