C++ 从其线程函数中引用一个 boost::thread

标签 c++ multithreading boost this

我正在使用 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/

相关文章:

c# - 在线程返回池之前如何阻塞?

c++ - 在 Mac OS X 上 boost 生成文件

c++ - 字符串模式匹配和插入C++

c++ - 用包含 const 成员的结构实例替换堆栈与静态变量

java - Android 中的多线程 - 为什么我的 onCompleted 回调没有被调用?

c++ - 错误打印 posix_time

c++ - 如何使用 -g 调试标志编译 boost?

c++ - 插入排序 - 处理空列表

c++ - std::time_point往返于std::string

c++ - std::thread::id 的要求。可以雾化吗?