我正在使用 boost 线程,我需要从它的线程函数中引用一个线程,这样我就可以将它存储在具有相应线程 ID 的映射中。主要思想是我将使用另一个线程通过查询 proc 表来收集线程统计信息,因此我不能使用 boost::this_thread::get_id()
。我需要存储线程,以便我可以在特定线程上调用中断和连接。
以下插入语句不起作用,但我希望 this 或 &this 引用线程。
线程函数:
workerFunc(){
std::string tid;
tid=boost::lexical_cast<string>(syscall(SYS_gettid));
threadMap.insert(pair<std::string,boost::thread>(tid,this));
}
目前我让父级进行插入,但等待线程获取其线程 ID,但这不是我想要的。
如何在不使用父对象的情况下存储线程/指向线程的指针?
最佳答案
通过使用仿函数而不是函数,您可以向其添加状态。
关于C++ 从其线程函数中引用一个 boost::thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12408953/