gpt4 book ai didi

c++ - 如何确保我的所有 C++ boost 线程在程序退出之前完成?

转载 作者:行者123 更新时间:2023-11-30 02:11:03 24 4
gpt4 key购买 nike

我知道我可以调用 thread.join() 来强制一个线程在当前线程可以继续之前完成。但是,我的程序有一堆文件被读入内存、修改,然后刷新到磁盘。每次刷新都在一个单独的线程中完成,以便在将内容刷新到磁盘时当前线程可以继续。

我可以保留一组所有生成的线程,然后在主线程执行结束时将它们全部加入,但是如果程序运行很长时间,可能会有大量的刷新线程,其中大部分已完成无论如何。

有什么方法可以在继续和退出主线程之前加入所有事件线程?

最佳答案

如果线程已经完成执行,它们实际上就不再是线程了。我没有看到你的担忧。我个人会考虑使用线程池。如果您想保留所有派生线程的列表,请使用 boost::thread_group。加入所有 线程本质上和有效地与加入所有事件 线程相同,因为加入非线程会立即返回。

关于c++ - 如何确保我的所有 C++ boost 线程在程序退出之前完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com