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