boost线程
来源:互联网 发布:同花顺l2数据 编辑:程序博客网 时间:2024/06/05 03:52
1包含thread头文件及使用boost命名空间#include<boost/thread.hpp>
2.使用等待当前线程的成员函数join()一直阻塞等待,直到当前线程结束。time_join()等待当前线程结束或者最多等待多少时间后返回[当当前线程已经结束但等待时间还未到时也返回]。
3.几种使用方法第一种方式:最简单方法
- void print_string( const string &str );
- int _tmain(int argc, _TCHAR* argv[])
- {
- boost::thread test1( print_string, "hello" );
- test1.join();
第二种方式:在类内部创建线程(1)类内部静态方法启动线程class HelloWorld{public:static void hello(){std::cout << "Hello world, I''m a thread!"<< std::endl;}static void start(){boost::thread thrd( hello );thrd.join();}};int main(int argc, char* argv[]){HelloWorld::start(); return 0;}在这里start()和hello()方法都必须是static方法。
- return 0;
- }
(2)类内部非静态方法启动线程将hello成员函数,改为非静态函数。class HelloWorld{public:void hello(){std::cout << "Hello world, I''m a thread!"<< std::endl;}void start(){boost::thread thrd(boost::bind((&HelloWorld::hello,this));thrd.join();}};int main(int argc, char* argv[]){HelloWorld hl; hl.start();return 0;}
第三种:用类内部函数在类外部创建线程class HelloWorld{public:void hello(const std::string& str){std::cout << str << std::endl;}};int main(int argc, char* argv[]){HelloWorld hl;boost::thread thr_test(boost::bind((&HelloWorld::hello,hl,"test----")); thr_test.detach();return 0;}
1 0
- boost线程
- boost线程
- Boost 线程
- boost线程库
- Boost线程库
- Boost线程学习简记
- boost线程的interruption
- boost线程库测试
- Boost 线程相关介绍
- Boost 线程同步机制
- boost线程 创建
- Boost线程库学习
- boost::thread线程管理
- BOOST 线程完全攻略
- boost之线程
- boost::lock_guard 线程同步
- boost 线程学习bind
- boost::thread线程管理
- SQL-to_char()保留小数,千位分隔符
- log4j.properties 基本配置
- 跑表精确至0.1秒
- JVM讲解
- 最简单的 RabbitMQ 监控方法
- boost线程
- C++单刷《机器学习实战》之一——k-近邻算法
- 浅谈IE事件处理与其他浏览器的差异
- Movie Critics CodeForces
- js基础测试题学习笔记20170305
- VSCode之C/C++调试配置详解
- 分治法之线性选择第i小元素
- CentOS查找yum安装路径
- HTML5 Canvas制作雷达图实战