现代高效的 C++ 线程池库
现代高效的 C++ 线程池库 线程池是一种用于并行执行任务的编程模式,http://en.wikipedia.org/wiki/Thread_pool_pattern. 更具体地说,有一些线程专门用于池和作业容器。作业会动态进入池。当有空闲线程时,会从容器中获取并删除一个作业,然后在该线程上运行该作业。 当您希望尽量减少加载和销毁线程的时间,以及限制同时运行的并行任务数量时,线程池非常有用。例如,可以在线程池中处理耗时的事件处理程序,以提高用户界面的响应速度。
特点: - 标准 C++ 语言,已测试可在 MS Visual Studio 2013(2012?)、gcc 4.8.2 和 mingw 4.8.1(带 posix 线程)上编译 - 简单而高效的解决方案,只有一个头文件,无需编译二进制库 - 查询空闲线程的数量并动态调整池大小 - 一个 API 可将任何可传递对象推入线程池: 闭包、函数对象、函数、bind 表达式的结果 - 可传递对象具有可变参数数量,以及运行对象的线程索引 - 自动推断模板参数 - 使用标准 C++ 未来语言获取任何类型的返回值 - 使用标准 C++ 未来语言获取已触发的异常 - 在 Apache 许可证下用于任何用途 - 两个变体,其中一个依赖 Boost Lockfree Queue 库,http://boost.org, 是只包含头文件的库
示例用法
p
暂无开放 Issues,或尚未同步最近议题。