原 MFC多執行緒之互斥量Mutex

2022-08-20 14:21:17 字數 994 閱讀 2598

先看模擬火車售票的這個程式:

#include "windows.h"

#include //執行緒標頭檔案

dword winapi threadproc1(lpvoid lpparameter);

dword winapi threadproc2(lpvoid lpparameter);

int index=0;

int ticket=100;

handle hmutex;//乙個互斥量

void main()

dword winapi threadproc1(lpvoid lpparameter)

}waitforsingleobject(hmutex,infinite);

//計數器為2

releasemutex(hmutex);

releasemutex(hmutex);

//釋放兩次

sleep(4000);}

dword winapi threadproc1(lpvoid lpparameter)

else

break

; releasemutex(hmutex);

}return0;

}dword winapi threadproc2(lpvoid lpparameter)

else

break

; releasemutex(hmutex);

}return0;

}

如果你執行兩次程式,第二次就會彈出only instance is runing

原因是:mutex命名互斥,當hmutex有值,所以已經建立了這個mutex,就建立了乙個程式,

當getlasterror==error_already_exits,說明重複

if(error_already_exists==getlasterror())//

已經被建立

多執行緒之Mutex 互斥量

include include include long g count 0 long g sum 0 static const int g s count 10 critical section g csthreadparamer critical section g csthreadcode h...

多執行緒之互斥量(mutex) 鎖(lock)

private int counter 1 std condition variable cv1 std condition variable cv2 std mutex g mutex 多執行緒之互斥量 mutex 鎖 lock,unlock,lock guard g mutex.lock g m...

Linux 多執行緒互斥量互斥

同乙個程序中的多個執行緒共享所在程序的記憶體資源,當多個執行緒在同一時刻同時訪問同一種共享資源時,需要相互協調,以避免出現資料的不一致和覆蓋等問題,執行緒之間的協調和通訊的就叫做執行緒的同步問題,執行緒同步的思路 讓多個執行緒依次訪問共享資源,而不是並行 mutex被建立時可以有初始值,表示mute...