待定:可以获取线程 ID 吗?
TBB: Possible to get Thread IDs?
我有一个非常简单的 parallel_for 循环
tbb::parallel_for(tbb::blocked_range<int>(0, values.size()),
[&](tbb::blocked_range<int> r)
{
for (int i = r.begin(); i < r.end(); ++i)
{
values[i] = std::sin(i * 0.001);
}
});
其中 'values' 是双精度向量。我想知道哪些线程在循环中的哪个范围内工作。是否可以从 TBB 获取某种线程 ID?
看起来解决方案是使用
tbb::this_tbb_thread::get_id()
在 tbb_thread.h 中。有关详细信息,请参阅此内容:
此外,如果您想知道当前 task_arena 中从 0 到竞技场并发级别的工作线程的相对数量,请使用:
int worker_index = tbb::task_arena::current_thread_index();
如果所有线程同时开始工作,索引值的范围可以是连续的。
我有一个非常简单的 parallel_for 循环
tbb::parallel_for(tbb::blocked_range<int>(0, values.size()),
[&](tbb::blocked_range<int> r)
{
for (int i = r.begin(); i < r.end(); ++i)
{
values[i] = std::sin(i * 0.001);
}
});
其中 'values' 是双精度向量。我想知道哪些线程在循环中的哪个范围内工作。是否可以从 TBB 获取某种线程 ID?
看起来解决方案是使用
tbb::this_tbb_thread::get_id()
在 tbb_thread.h 中。有关详细信息,请参阅此内容:
此外,如果您想知道当前 task_arena 中从 0 到竞技场并发级别的工作线程的相对数量,请使用:
int worker_index = tbb::task_arena::current_thread_index();
如果所有线程同时开始工作,索引值的范围可以是连续的。