我想写一个 boost::thread_group。假设我正确理解了线程中的回调是什么,我也想在我的程序中应用它。
我找到了以下示例:(没有回调的线程组)
boost::thread_group group;
for (int i = 0; i < 15; ++i)
group.create_thread(aFunctionToExecute);
group.join_all();
如果我想将其更改为回调,它会简单地添加&
之前aFunctionToExecute
吗?
我考虑过在以下情况下使用回调:假设我有 2 个内核,我的 for 循环是从 0 到 99(100 个元素)。我不想打开 100 个线程,而是只打开 2 个线程(本例中的核心数),并且在每个线程使用正确的变量完成计算后,它会发送已完成的内容并等待命令运行再次直到将计算所有 100 个元素。
有人知道我可以结合创建这个的一个例子或几个例子吗?
由于我在线程方面没有真正的经验,我想知道这种应用 group_threads 的方式是“正确”的方式吗?
回复