C++ EnterCriticalSection鎬庝箞浣跨敤
鍦–++涓紝EnterCriticalSection鏄疻indows API鎻愪緵鐨勪竴绉嶄复鐣屽尯閿佸畾鏈哄埗銆傚畠鐢ㄤ簬闄愬埗瀵瑰叡浜祫婧愮殑璁块棶锛屼互纭繚鍦ㄤ换浣曠粰瀹氭椂闂村彧鏈変竴涓嚎绋嬪彲浠ヨ闂祫婧愩€?/p>
涓嬮潰鏄娇鐢‥nterCriticalSection鐨勫熀鏈楠わ細
- 棣栧厛锛屽畾涔変竴涓狢RITICAL_SECTION瀵硅薄浠ヨ〃绀轰复鐣屽尯銆?/li>
CRITICAL_SECTION cs;
- 鍦ㄩ渶瑕佸鍏变韩璧勬簮杩涜淇濇姢鐨勫湴鏂癸紝浣跨敤EnterCriticalSection鍑芥暟鏉ラ攣瀹氫复鐣屽尯銆?/li>
EnterCriticalSection(&cs);
-
鎵ц瀵瑰叡浜祫婧愮殑鎿嶄綔銆?/p>
-
浣跨敤LeaveCriticalSection鍑芥暟鏉ラ噴鏀句复鐣屽尯銆?/p>
LeaveCriticalSection(&cs);
瀹屾暣绀轰緥浠g爜濡備笅鎵€绀猴細
#include <Windows.h>
#include <iostream>
CRITICAL_SECTION cs;
int main() {
// 鍒濆鍖栦复鐣屽尯
InitializeCriticalSection(&cs);
// 杩涘叆涓寸晫鍖?/span>
EnterCriticalSection(&cs);
// 璁块棶鍏变韩璧勬簮
std::cout << "Accessing shared resource" << std::endl;
// 绂诲紑涓寸晫鍖?/span>
LeaveCriticalSection(&cs);
// 閿€姣佷复鐣屽尯
DeleteCriticalSection(&cs);
return 0;
}
璇锋敞鎰忥紝EnterCriticalSection鍜孡eaveCriticalSection蹇呴』鎴愬鍑虹幇锛屽苟涓斿湪涓寸晫鍖虹殑浠g爜娈靛唴閮ㄦ墽琛屽鍏变韩璧勬簮鐨勬搷浣溿€傚悓鏃讹紝闇€瑕佸湪绋嬪簭缁撴潫鍓嶈皟鐢―eleteCriticalSection鏉ラ攢姣佷复鐣屽尯銆?/p>