entercriticalsection(C++ EnterCriticalSection简单使用)

发布时间:2025-12-11 01:02:46 浏览次数:1

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 销毁临界区。这样就可以保证两个线程同时只有一个线程可以进入临界区,避免了共享资源的竞争问题。

entercriticalsection
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477