首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问C++ windows 10应用程序中的默认线程池?

如何访问C++ windows 10应用程序中的默认线程池?
EN

Stack Overflow用户
提问于 2019-04-23 20:19:05
回答 1查看 1.6K关注 0票数 3

根据这个那么问:“为什么Windows 10会在我的程序中启动额外的线程呢?”和Hans的回答: Windows 10为Windows 10上的每个C++进程启动一个线程池(至少在VS2013+中用c++编译时是这样)。

根据微软文档“线程池”线程池API (2018-05-30),我找不到加入默认进程线程池的方法。

是否可以加入默认进程线程池以及如何加入?还是我必须创造一个新的?

下面列出了每个进程拥有多个线程池的几个缺点:

  • 创建了更多可以避免的线程
  • 更多的休眠线程
  • 为其他线程和管理器本身占用更多内存
  • 由于线程池之间可能存在并发性,导致线程管理算法效率较低。

如果我必须创建新的线程池,而不是每个进程连接/使用一个全局线程池,那么它是否消除了每个进程只有一个线程池的优点?为什么我们不能验证是否有一个已经创建的线程池并直接使用它?为什么不只是能够加入主流程头池呢?在C#中只有一个线程池不是更好吗?

附带注意:我正在研究一种数学算法,计算时间足够长,可以被多线程处理。同时,它也是第三方DLL的一部分。能够加入一个已经创建的线程池对我来说似乎比创建一个新线程更符合逻辑,并且可能会干扰客户主进程线程和另一个潜在线程池。

我从雷蒙·陈那里得到了一个很好的答案和很好的信息之后,我发现了这篇我喜欢分享的文章,因为它帮助我更好地理解了: 前20位C++多线程错误及其避免方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 22:30:24

std::async在Windows上使用默认线程池,因此您可能希望使用该线程池。

更多细节,这里这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55818820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档