gpt4 book ai didi

c++ - 异步使用线程池?

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

我是 C++ 的新手,我尝试使用 std::async 和 launch::async 来生成新线程来处理传入的 UDP 数据包。对于特定端口上的每个新请求,异步都会生成一个新线程来处理它。

在负载下,我发现 udp 数据包到达了我,但 async 需要 10 多秒才能生成线程并开始处理信息。我想知道是否有一个底层线程池,这就是异步被阻塞并正在等待的原因。如果是,我怎样才能增加这个线程池的大小?

最佳答案

根据标准 std::async,由于对线程本地存储的要求,不能使用线程池。但是实际上 MSVC 确实使用了线程池,因为它的实现是建立在 PPL 之上的,它们只是忽略了对线程本地存储的要求。其他实现将根据语言要求为每次调用 std::async 启动一个新线程。

Bartosz 一如既往地拥有出色的 blog post关于这个问题。

关于c++ - 异步使用线程池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29622179/

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