以下是我的示例代码:
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的线程正在运行?
由于
答案 0 :(得分:1)
每个线程都有一个值,一个标识符,所以可以做的是你可以thread.id ()
来识别一个线程,并将它存储在一个数组中,
代码:
int tid [2];
thread t [2];
for(int i=0;i <2;i++)
{
tid [i] = t [i].id ()
}
然后编写一个搜索函数来匹配一个带有id的线程