單行程執行
多行程執行
基於上述問題,要讓多行程同時執行不會發生資源互搶競賽,又能到每個行程順利執行結束,這就需要使用互斥機制Mutex來解決行程同步的問題。
在VC++中提供有Critical Section、Mutex、Event等方法可以解決行程同步問題,這裡介紹有 CreateMutex使用方法,參考如下程式碼:
Handle hMutex = NULL; //第二個參數,TRUE表示建立佔有Mutex使用權,FALSE表示建立者不佔有Mutex使用權 hMutex = CreateMutex(NULL,FALSE,"MyMutex"); //建立Mutex WaitForSingleObject(hMutex,INFINITE); //取得Mutex使用權限並等待使用被釋放 //......Critical section protected code here(臨界區間) ReleaseMutex(hMutex); //釋放使用使用權,讓其他執行續或行程進入critical section
沒有留言:
張貼留言