boost thread使用
来源:互联网 发布:java个人博客源码 编辑:程序博客网 时间:2024/06/08 06:35
boost库是个准C++标准库,thread是其中重要的组成部分。它封装了不同操作系统的多线程编程,使得它具备了跨平台的能力。
首先是boost安装,从www.boost.org网站下下载最新的库,解压到本地目录下,重命名为boost
这里给出了安装脚本,该脚本采用静态链接多线程编译。 新建一个build_boost.sh的文件,将下述代码拷贝如文件内
#!/bin/bashmachine=`uname -m | grep '64'`if [ a"$machine" == "a" ]; then bitlevel=32else bitlevel=64ficd boost./bootstrap.sh --prefix=././bjam link=static threading=multi variant=release address-model=$bitlevel toolset=gcc runtime-link=static执行这个脚本即可
接下去是编程,新建一个example.cpp的文件,拷贝如下代码
<pre name="code" class="cpp">#include <boost/thread.hpp>#include <iostream>void task1() { std::cout << "This is task1!" << std::endl;}void task2() { std::cout << "this is task2!" << std::endl; sleep(5);}int main(int argc, char ** argv){ using namespace boost; thread thread_1 = thread(task1); thread thread_2 = thread(task2); thread_2.join(); thread_1.join(); return 0;}
编译需要如下语句,注意boost的位置,我的是和程序同一目录,所以使用./boost。当然需要提前安装g++(没有的话yum install g++)
g++ -I./boost -Iinclude -L./boost/stage/lib example.cpp -o example -lm -lboost_system -lboost_thread -lrt
代码是网上找来的,用thread(func)构造函数新建一个线程,join是挂起一个进程直到它执行完。显然两个线程是并行执行的,所以执行thread_2时先等待5秒,但同时也会执行thread_1,最终效果如下
由于是并行执行,其顺序是不确定的,如果看到先输出线程1也正常
在emeraldb中,使用boost的thread建了线程池,可以实现多用户连接和线程回收。
0 0
- Boost::Thread使用示例
- Boost::Thread使用示例
- Boost::Thread使用示例
- boost thread使用
- Boost::Thread使用示例
- Boost使用Thread库
- boost:thread使用实例
- Boost::Thread使用示例
- Boost::Thread使用示例
- Boost Thread使用
- <Boost> boost::thread 多线程的使用
- Boost::thread库的使用
- 使用boost的thread库
- Boost::thread库的使用
- Boost::thread库的使用
- boost thread 的初次使用
- Boost::thread库的使用
- Boost::thread库的使用
- 根据输入日期获取此日期所在日期范围
- NYOJ 题目19 擅长排列的小明(dfs)
- 最简单的springMVC实例
- Java 自增自减运算符陷阱
- 清河县信息网源码下载清河县分类信息网源码下载,清河县门户网源码下载
- boost thread使用
- SDwebImage的缓存
- java高新技术:反射
- shell 学习 demo1
- 开始重学C和C++
- Jsp:useBean使用详解
- 张孝祥老师
- Unity3d将资源从StreamingAssets文件夹释放到本地方法(.apk)
- 单片机小白学步系列(三) 偶遇51单片机