boost创建线程池_第一次亲密接触Boost线程

本文详细介绍了如何在Visual Studio环境下使用Boost库创建线程,包括下载Boost、配置环境、解决编译问题以及创建和运行简单的Boost线程示例,旨在帮助初学者顺利入门。
摘要由CSDN通过智能技术生成

作者:AndyUk06

翻译:好饱的程序员博客

介绍

这篇文章通过一步一步的介绍帮助初学者学习在Visual Studio环境中使用Boost线程。

这篇文章简单地介绍了在不同的形式中使用Boost线程,帮助你入门,减少编译时的各种麻烦,这往往是初学者最难的地方。

简单的boost::thread例子

我们通过Gavin Baker的 "anonymn" 来展现boost线程编程:

#include

#include

#include

void workerFunc()

{

boost::posix_time::seconds workTime(3);

std::cout << "Worker: running" << std::endl;

// Pretend to do something useful...

boost::this_thread::sleep(workTime);

std::cout << "Worker: finished" << std::endl;

}

int main(int argc, char* argv[])

{

std::cout << "main: startup" << std::endl;

boost::thread workerThread(workerFunc);

std::cout << "main: waiting for thread" << std::endl;

workerThread.join();

std::cout << "main: done" << std::endl;

return 0;

}

例子代码创建了一个boost线程对象,传递给他工作函数的参数,在完成时退出该线程。

这个简单的例子,我用来验证Boost线程库设置是否成功。以下步骤是运行这个简单例子的必备步骤。

1. 下载并安装Boost

如果你还没有安装好Boost,可以从这里下载并安装:外链网址已屏蔽www.boost.org/users/download/ 或者 ,安装好后在你的Visual Studio项目中,选择配置属性->附加:包含目录。然后输入Boost的安装目录。

完成以上步骤后,首次编译上面的代码可能会遇到如下错误:

LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-gd-1_46_1.lib'

意思是找不到库文件,在Boost中,必须建立自己的库。

2. 获得bjam

下一步是建立bjam.exe, 我发现最简单的方法是使用BoostPro提供的安装程序。在我的例子中,使用的是boostpro 1.46.1的安装程序。下载并运行此程序。对于我来说,我最喜欢的还是VS 和VS 2010两个版本。

在安装过程中,选择需要安装什么库,没必要全选,选择你需要的即可。

3. 创建 bjam.exe可执行文件

bjam安装后,打开命令行然后到src目录下,例如:

C:\Program Files\boost_1_46_1\tools\build\v2\engine\src

运行build.bat。注意脚本将在bin.ntx86子目录下创建bjam.exe可执行文件。

C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86

4. 更新PATH环境变量

现在添加bjam.exe到PATH环境变量中。在Windows 7,可以右键点击“计算机”(或我的电脑),选择属性,然后在高级系统设置中修改。

点击环境变量PATH,选择编辑按钮。

将目录添加进去,例如:C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86

5. 运行bjam可执行文件

在命令行,到C:\Program Files\boost_1_46_1目录下,输入bjam,程序创建过程需要等待5-15分钟。

6. 设置Visual Studio项目属性

在你的Visual Studio 项目中,选择配置属性->连接器->输入->附加依赖项,然后输入 libboost_thread-vc100-mt-gd-1_46_1.lib

在你的Visual Studio项目中,选择项目配置属性->连接器->常规->附加库目录,

告诉它stage/lib目录。

然后呢,我一开始所展示的Boost线程代码就可以编译运行了,输出如下:

main: startup

main: waiting for thread

Worker: running

Worker: finished

main: done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值