从循环中连接线程:最佳实践
Joining Threads from a loop : best practise
我有一个嵌套的for循环,触发线程,看起来像这样;
for SIZE
for SIZE
std::thread cellThread ([=]() { solver(i,j, field); return 1; });
WAIT FOR JOIN
其中i和j是int和字段是指向浮点数组(float*)的指针,我想知道最好的做法是等待线程收敛?
我的想法是有一个全局计数器等待SIZE*SIZE,然后继续程序。我看到一个线程数组被使用,只是等待每个线程加入(我将使用std::thread* cellThread = (std::thread*)calloc(size, sizeof(std::thread));
作为构造函数,因为我的数组大小是动态的。
谢谢。
我的想法是有一个全局计数器,等待SIZE*SIZE,然后继续程序。
为什么不等待您拥有的每个thread
对象呢?
我将使用
std::thread* cellThread = (std::thread*)calloc(size, sizeof(std::thread));
我真的希望不是。
这个应该可以工作:
std::vector<std::thread> threads;
threads.reserve(SIZE*SIZE);
for SIZE
for SIZE
threads.emplace_back( solver, i, j, field );
for (auto& t : threads)
t.join();
相关文章:
- 将线程中的数据存储到全局容器的最佳方法?
- 最佳做法是从另一个线程访问 qml 中的Q_PROPERTY
- 处理影响跨不同线程共享对象的定时回调的最佳方法是什么?
- std::使用类成员函数创建线程 - 最佳实践
- 等待线程的最佳方式是什么
- 存储/传递 v8 承诺解析器供以后使用的最佳实践?(结合C++线程)
- 套接字发送(.)线程的最佳数量
- 线程数据封装最佳实践
- 最佳多线程全局变量管理
- 从QTcpSocket上的数据流中连续运行复杂算法的最佳Qt线程解决方案是什么
- 多线程 UI 的最佳方式
- 暂停和恢复线程的最佳解决方案是什么?
- 使用来自不同线程的实时数据更新QTableView的最佳策略
- 从线程更新进度条的最佳方式
- C++/Win32 我在 Windows 2000+ 上启动线程的最佳方式
- 控制对多线程程序中字符串对象的访问的最佳方法
- std::线程管理:用法和最佳实践
- 在多个相互依赖的线程上进行封送处理和等待的算法、模式或最佳实践
- CUDA扭曲和每个块的最佳线程数
- 处理字符串的最佳线程数