欢迎来到天天文库
浏览记录
ID:16290802
大小:103.50 KB
页数:19页
时间:2018-08-09
《boost多线程编程1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Boost多线程编程背景• 今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序; GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。• 跨平台 创建线程• 头文件 namespaceboost{ classthread; classthread_group;}• thread():构造一个表示当前执行线程的线程对象•
2、 explicitthread(constboost::function0&threadfunc)注:boost::function0可以简单看为:一个无返回(返回void),无参数的函数。这里的函数也可以是类重载operator()构成的函数。 第一种方式:最简单方法• #include• #include• • voidhello()• {• std::cout<<•
3、 "Helloworld,I''mathread!"• <•
4、 #include• #include• • boost::mutexio_mutex;• • structcount• {• count(intid) :id(id){}• • voidoperator()()• {• for(inti=0;i<10;++i)•
5、 {• boost::mutex::scoped_lock• lock(io_mutex);• std::cout<6、 };• • intmain(intargc,char*argv[])• {• boost::threadthrd1(count(1));• boost::threadthrd2(count(2));• thrd1.join();• thrd2.join();• return0;• } 第三种方式:在类内部创建线程• (1)类内部静态方法启动线程• #includ7、e• #include• classHelloWorld• {• public:• staticvoidhello()• {• std::cout<<• "Helloworld,I''mathread!"• <
6、 };• • intmain(intargc,char*argv[])• {• boost::threadthrd1(count(1));• boost::threadthrd2(count(2));• thrd1.join();• thrd2.join();• return0;• } 第三种方式:在类内部创建线程• (1)类内部静态方法启动线程• #includ
7、e• #include• classHelloWorld• {• public:• staticvoidhello()• {• std::cout<<• "Helloworld,I''mathread!"• <
此文档下载收益归作者所有