boost之ThreadPool

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

threadpool是基于boost库实现的一个线程池子库,但线程池实现起来不是很复杂。我们从threadpool中又能学到什么东西呢?

它是基于boost库实现的,如果大家对boost库有兴趣,看看一个简单的实现还是可以学到点东西的。

threadpool基本功能

1、任务封装,包括普通任务(task_func)和优先级任务(prio_task_func)。

2、调度策略,包括fifo_scheduler(先进先出)、lifo_scheduler(后进先出)、prio_scheduler(优先级)。

3、结束策略,包括wait_for_all_tasks(全部任务等待)、wait_for_active_tasks(激活任务等待)、immediately(立即结束)。

4、动态修改线程池个数功能。

5、基于future封装的异步返回值获取功能。

 

 在sorceforge上有一个用boost编写的线程池。该线程池和boost结合的比较好,并且提供了多种任务执行策略,使用也非常简单。 下载地址: http://threadpool.sourceforge.net/ 这个线程池不需要编译,只要在项目中包含其头文件就可以了。

一、源代码分析

quickstart分析(/threadpool/libs/threadpool/quickstart

这个例子的代码很简单,但已经全部展示了线程池的核心内容,包括建立、调度、同步等操作。

 

view plaincopy to clipboardprint?

// Create fifo thread pool container with two threads.  

pool tp(2);  

     

// Add some tasks to the pool.  

tp.schedule(&first_task);  

tp.schedule(&second_task);     

    

// Wait until all tasks are finished.  

tp.wait(); 

// Create fifo thread pool container with two threads.

pool tp(2);

  

// Add some tasks to the pool.

tp.schedule(&first_task);

tp.schedule(&second_task);  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值