c++ - 找到有值(value)的线程

标签 c++ multithreading

这是我的示例代码:

void bar(int node, int value1, int value2)
{
  // do stuff...
}

int main() 
{
  std::thread node1 (bar, 1, 10, 12);
  std::thread node2 (bar, 2, 21, 23);

  std::cout << "main, node 1 and 2 now execute concurrently...\n";

  // synchronize threads:
  node1.join();                // pauses until first finishes
  node2.join();               // pauses until second finishes

  std::cout << "completed.\n";

  return 0;
}

有什么方法可以找到具有值的线程是否正在运行或存在于池中?示例:查找函数栏中节点值为 1 的线程是否正在运行?或者,名为 node1 的线程正在运行?

谢谢

最佳答案

每个线程都有一个值,一个标识符,那么可以做的就是可以做thread.id()来标识一个线程,并存储在一个数组中, 代码:

int tid [2];
thread t [2];
for(int i=0;i <2;i++)
 {
    tid [i] = t [i].id ()
  }

然后写一个搜索函数来匹配线程和它的id

关于c++ - 找到有值(value)的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47079062/

相关文章:

java - Handler、Runnable 和 Threads 之间有什么区别?

multithreading - GTK 和 nanomsg 的线程友好主循环

java - 多线程目录创建

c++ - 如何在 Windows (win32) 上获取每个线程的 cpu 使用率

c++ - 如何使用 inplace const char* 作为 std::string 内容

c++ - 嵌入第三方字体作为 Win32 应用程序的资源

c++ - C++03 中 C++ 枚举的底层类型

c++ - MongoDb 总和聚合 C++

c++ - 纯虚拟的备用参数列表不会继承(需要 "using")

python - 尝试在 python 中多处理需要列表参数的函数