91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
囊谦县| 华安县| 莎车县| 满城县| 伊通| 长乐市| 元谋县| 甘孜县| 仙桃市| 奉节县| 巨鹿县| 库尔勒市| 睢宁县| 天柱县| 庆城县| 阳原县| 宕昌县| 岳阳市| 湖州市| 乌鲁木齐县| 布尔津县| 寿光市| 新乡市| 图木舒克市| 望城县| 衡山县| 富宁县| 鄢陵县| 佛冈县| 延庆县| 乌鲁木齐市| 泗洪县| 鄢陵县| 雷山县| 石城县| 阿鲁科尔沁旗| 阿拉善左旗| 定陶县| 通许县| 常山县| 桐庐县|