- 主题:有什么好用的线程池库吗?
推荐一个
--
FROM 144.34.191.*
文心一言的回答:
以下是几个常用的线程池库:
ThreadPool:这是一个简单易用的C++线程池库,采用C++11标准进行编写,支持任务队列、动态扩容和线程池关闭等功能。该库只有一个头文件和一个源文件,可以直接使用。
Boost.Asio:这是一个基于C++的网络编程库,除了网络编程外,它还提供了线程池的实现。Boost.Asio的线程池支持任务队列、动态扩容和线程池关闭等功能,并且具有较高的灵活性和可扩展性。但是,由于Boost.Asio的使用方式较为复杂,需要一定的学习成本。
Intel TBB:这是Intel公司提供的一个开源C++并行编程库,它可以帮助程序员快速实现并行化算法。其中包含了线程池、任务队列等多种并行计算模型,可以轻松地应对多种并发场景。
【 在 wjhtingerx 的大作中提到: 】
: 推荐一个
--
FROM 114.94.8.*
每个人对线程池的需求不一样,so没具体需求,那就很难搞
--
FROM 221.218.160.*
tbb 吧。
【 在 wjhtingerx 的大作中提到: 】
: 推荐一个
--
FROM 223.104.38.*
今天看到 putty 作者的一篇文章,我感觉你如果认识他的话,一定会成为有很多共同语言的好朋友:
https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/coroutines-philosophy/
【 在 ylh0315 的大作中提到: 】
: 这玩意儿我搞过,弄成了公用程序,谁都可以用。
: 主要是结合网络服务器,线程池服务器。包括了协程,多线程协程。适用于Linux(epoll),和OSX(KQUEUE)。还包括自愈式的连接池。各种队列,包括连接池耗尽的等待队列自然包括在其中,还有各种队列的超时处理流程。这个是必须要考虑的,否则,有限的几个线程,被hung住了,系
: 统就别干了。
: ...................
--
FROM 110.81.0.*
文心一言的回答:
以下是一个采用OpenMP的C++线程池库的清单:
TBB (Threading Building Blocks): 这是一个由Intel开发的并行计算库,它提供了一个C++并行容器和算法库,支持OpenMP和许多其他并行模式。
OpenMP Tasks: 这是OpenMP的一个扩展,它提供了基于任务的并行性。它允许开发人员将任务作为独立的执行单元,并使用OpenMP的并行构造来管理线程池。
Intel Threading Building Blocks (TBB): 这是一个基于C++的并行计算库,它提供了一个高效的线程池,支持OpenMP和其他并行模式。
C++17 Parallel Algorithms: 从C++17开始,标准库提供了一些并行算法,这些算法可以利用OpenMP来加速执行。
Boost.Compute: 这是一个基于C++的并行计算库,它提供了一个灵活的并行计算框架,支持OpenMP和其他并行模式。
OpenMP Accelerator I/O: 这是OpenMP的一个扩展,它允许开发人员直接在GPU上执行I/O操作,以提高性能。
这些库都提供了高效的线程池管理和丰富的并行算法,可以满足不同的应用需求。
--
FROM 171.221.52.*
最简单有效的是asio的实现
asio::thread_pool pool(4);
asio::post(pool,
[]()
{
});
// Wait for all tasks in the pool to complete.
pool.join();
【 在 wjhtingerx 的大作中提到: 】
: 推荐一个
--
FROM 183.192.237.*