亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ EnterCriticalSection簡單使用

c++
小云
112
2023-08-09 15:24:43
欄目: 編程語言

EnterCriticalSection函數是用來進入臨界區的函數,用于保護共享資源的訪問。下面是一個簡單的使用示例:

#include <iostream>
#include <Windows.h>
CRITICAL_SECTION g_criticalSection;
DWORD WINAPI ThreadFunc(LPVOID lpParam)
{
// 進入臨界區
EnterCriticalSection(&g_criticalSection);
// 訪問共享資源
std::cout << "Thread " << GetCurrentThreadId() << " entered critical section" << std::endl;
// 離開臨界區
LeaveCriticalSection(&g_criticalSection);
return 0;
}
int main()
{
// 初始化臨界區
InitializeCriticalSection(&g_criticalSection);
// 創建線程
HANDLE hThread1 = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
HANDLE hThread2 = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
// 等待線程結束
WaitForSingleObject(hThread1, INFINITE);
WaitForSingleObject(hThread2, INFINITE);
// 銷毀臨界區
DeleteCriticalSection(&g_criticalSection);
return 0;
}

上面的示例中,首先定義了一個全局的臨界區變量 g_criticalSection,然后在 ThreadFunc 中使用 EnterCriticalSection 進入臨界區,訪問共享資源,最后使用 LeaveCriticalSection 離開臨界區。在 main 函數中,先使用 InitializeCriticalSection 初始化臨界區,然后創建兩個線程來執行 ThreadFunc,最后使用 DeleteCriticalSection 銷毀臨界區。這樣就可以保證兩個線程同時只有一個線程可以進入臨界區,避免了共享資源的競爭問題。

0
肇东市| 包头市| 塔河县| 教育| 那曲县| 长寿区| 荣成市| 福州市| 邯郸市| 江津市| 安徽省| 镇远县| 凤山县| 麻栗坡县| 密山市| 瑞丽市| 萝北县| 固始县| 通辽市| 灵宝市| 米泉市| 沈阳市| 江油市| 玛曲县| 琼中| 满城县| 图们市| 高安市| 班戈县| 邛崃市| 怀化市| 浦江县| 突泉县| 台东县| 宜良县| 许昌县| 土默特左旗| 双牌县| 扎赉特旗| 富平县| 修水县|