根据这个那么问:“为什么Windows 10会在我的程序中启动额外的线程呢?”和Hans的回答: Windows 10为Windows 10上的每个C++进程启动一个线程池(至少在VS2013+中用c++编译时是这样)。
根据微软文档“线程池”和线程池API (2018-05-30),我找不到加入默认进程线程池的方法。
是否可以加入默认进程线程池以及如何加入?还是我必须创造一个新的?
下面列出了每个进程拥有多个线程池的几个缺点:
如果我必须创建新的线程池,而不是每个进程连接/使用一个全局线程池,那么它是否消除了每个进程只有一个线程池的优点?为什么我们不能验证是否有一个已经创建的线程池并直接使用它?为什么不只是能够加入主流程头池呢?在C#中只有一个线程池不是更好吗?
附带注意:我正在研究一种数学算法,计算时间足够长,可以被多线程处理。同时,它也是第三方DLL的一部分。能够加入一个已经创建的线程池对我来说似乎比创建一个新线程更符合逻辑,并且可能会干扰客户主进程线程和另一个潜在线程池。
我从雷蒙·陈那里得到了一个很好的答案和很好的信息之后,我发现了这篇我喜欢分享的文章,因为它帮助我更好地理解了: 前20位C++多线程错误及其避免方法
https://stackoverflow.com/questions/55818820
复制相似问题