转自:http://www.cnblogs.com/xiaouisme/archive/2012/10/04/2711691.html
安装boost:
http://www.boost.org/下载boost,我下下来是boost_1_51_0. boost库的大部分都可以直接引用头文件就行了,因为大多数都是头文件里模板加inline函数构成。但是也有些是需要安装成二进制lib的,比如thread.(详见文档:”Getting Started…”)
$ cd boost_1_51_0
$ sudo ./bootstrap.sh //这条命令类似./configure. 也可以./bootstrap.sh --help看看有哪些命令参数.
$ sudo ./b2 install //这样,boost库的所有头文件和需要编译的lib都安装到/usr/local/lib 和 /usr/local/include了。(头文件在boost文件夹里.)
- 1
- 2
- 3
boost扩展工具-线程池(threadpool): http://threadpool.sourceforge.net/下载threadpool,然后把threadpool里面的boost目录下的threadpool.hpp和threadpool文件夹拷贝到/usr/local/include/boost/下(如果有权限问题还得cd /usr/local/include/boost && sudo chmod -R 777 *). 使用threadpool需要链接boost的两个共享库:boost_thread、boost_system(如果是静态链接那就还得动态链接pthread库), 并且include
callback_task.hpp:
/*
* @file callback_task.hpp
* @brief add callback task for threadpool.
*/
#ifndef __callback_task_h__
#define __callback_task_h__
#include
namespace boost { namespace threadpool
{
template
class callback_task
{
typedef boost::function CALLBACK;
typedef boost::function FUNCTION;
private:
CALLBACK m_Callback;
FUNCTION m_Function;
public:
callback_task(FUNCTION f, CALLBACK c):m_Callback(c), m_Function(f){}
void operator()(){ m_Callback(m_Function()); }
};
}} // namespace boost::threadpoll
#endif // __callback_task_h__
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
main.cpp:
#include
#include
#include
#include "callback_task.hpp"
using namespace std;
using namespace boost::threadpool;
void task_normal()
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?