我正在尝试执行此解决方案中建议的相同操作:
How can I create a thread-safe singleton pattern in Windows?
但是,临界区应该在哪里初始化和未初始化?
答案 0 :(得分:2)
将关键部分包装到一个类中(使用现成的或自己制作)并声明该类的全局变量 - 然后临界区将在程序启动期间初始化,并在程序退出时取消初始化。由于启动和退出是在一个线程上完成的,因此它可以正常工作。
答案 1 :(得分:0)
使用pthread_once(),您可以在首次使用之前初始化关键部分。 Windows具有InitOnceExecuteOnce功能。