13 c++ multithreading boost boost-thread
这是创建thread_group并并行执行所有线程的代码:
boost::thread_group group;
for (int i = 0; i < 15; ++i)
group.create_thread(aFunctionToExecute);
group.join_all();
Run Code Online (Sandbox Code Playgroud)
此代码将立即执行所有线程.我想要做的是并行执行除4个以外的所有操作.当on终止时,执行另一个,直到不再执行为止.
另一种更有效的解决方案是让每个线程在完成时回调到主线程,并且主线程上的处理程序每次都可以启动一个新线程。这可以防止重复调用 timed_join,因为主线程在触发回调之前不会执行任何操作。