c++ 弱鸡线程池的实现

本文介绍了一个使用C++11特性实现的简易线程池,包括线程池的数据结构和主要操作。线程池包含固定数量的线程,支持带参数的异步任务,使用条件变量和互斥锁进行同步。线程池构造函数创建线程并启动循环,push_back函数用于添加任务,析构函数则安全地关闭所有线程。
摘要由CSDN通过智能技术生成

线程池

把之前做的笔记一次性挪到博客上好喽
这是一个固定数量的线程池,线程任务可带参数,异步返回返回值,本菜鸡花了一天才看明白这是怎么回事,用到了很多c++11的特性,比如bind function future等

class ThreadPool{
   
public:    
using Function = std::function<void()>;    /* 成员函数         push-task 任务队列推进去一个任务        构造函数     */   
 ThreadPool(int i);   
  ~ThreadPool();    
  template<class F,class ...Args>    
  auto push_task(F &&f,Args &&...args)->   
  std::future<typename std::result_of<F(Args...)>::type>;
private:   
 /*私有成员 任务队列一个     一个锁    一个条件变量     一个bool     一个vector保存线程     */    	 std::queue<Function,std::list<Function>> Tasks;   
std::vector<std::thread
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值