2010-06-02 56 views

回答

2

将关键部分包装成一个类(使用一个准备好的或制作你自己的)并声明该类的全局变量 - 然后关键部分将在程序启动期间初始化并在程序退出时被初始化。由于启动和退出是在一个线程上完成的,因此它将可靠地工作。

+0

了解你在说什么。谢谢! – Akshay 2010-06-02 08:00:38

0

使用pthread_once(),您可以在首次使用它之前初始化关键部分。 Windows具有InitOnceExecuteOnce功能。

+0

有了boost(而不是pthread_once()),你可以使用像我这样的解决方案: http://stackoverflow.com/questions/2955921/thread-safe-initialization-of-function-local-static -const-objects/2956314#2956314 – Nikko 2010-06-02 12:13:27

+0

如果你有pthread,你不需要windows临界区 – basin 2013-09-30 12:11:26