繁体   English   中英

TBB:可以获得线程 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);
        }
    });

其中“值”是双精度向量。 我想知道的是哪些线程在循环中的哪个范围内工作。 是否可以从 TBB 获取某种线程 ID?

此外,如果您想知道当前task_arena 中从 0 到 arena 并发级别的工作线程的相对数量,请使用以下命令:

int worker_index = tbb::task_arena::current_thread_index();

如果所有线程同时开始工作,索引值的范围可以是连续的。

看起来解决方案是使用

tbb::this_tbb_thread::get_id()

在 tbb_thread.h 中。 有关更多详细信息,请参阅此内容:

https://software.intel.com/en-us/node/506336

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM