为每个线程分配一个实例(Boost环境)
我是Boost新手,我正在重新设计一个日志类,它必须在线程应用程序中工作。艾迪·伊扎德(Eddy Izzard)用他的声音对你们中知道他提到达芬奇的直升机的人说:“它被设计成一个奥斯特雷姆物体,但不起作用。” 您可以按如下方式使用它:为每个线程分配一个实例(Boost环境),boost,thread-local,Boost,Thread Local,我是Boost新手,我正在重新设计一个日志类,它必须在线程应用程序中工作。艾迪·伊扎德(Eddy Izzard)用他的声音对你们中知道他提到达芬奇的直升机的人说:“它被设计成一个奥斯特雷姆物体,但不起作用。” 您可以按如下方式使用它: Logger &logger = Logger::instance(); logger << "He designed a helicopter you know...that did not work." << endl; 因此
Logger &logger = Logger::instance();
logger << "He designed a helicopter you know...that did not work." << endl;
因此,它最初设计为单例,经过一些方法之后,我认为Logger::instance可能会返回线程特有的记录器。我可以使用STL来定义Boost线程ID和Logger类实例之间的映射
然后我开始思考,也许有一种更聪明的方法可以使用某种形式的线程本地存储来实现这一点
map的一个问题是,我必须做一些内部清理,以便在线程终止时定期删除记录器。我开始觉得自己在重新创造事物
我看到Boost支持线程本地存储
有什么想法或警告吗
谢谢
Kenny我使用Boost线程本地存储,并使用一个对象注册每个记录器,该对象将数据导入文件或cout 肯尼