线程在进行多个任务同时运行的时候,其消耗是相当小的。因此在诸多的多任务应用用起到了很关键的作用,尤其是几十,上百任务时就会有所体现,单单一两个不足以体现线程使用的优势。因此在开发多任务程序时掌握多线程的设计也至关重要。今天小试了下boost库中的thread,使用上和C下的thread没多大差别,毕竟是应用而不是写库,拿来看到即可用上。
- #include <iostream>
- #include <cassert>
- #include <string>
- #include <iomanip>
- #include <boost/thread/thread.hpp>
- #include "boost/regex.hpp"
- using namespace std;
- void print_hello(void){
- while(1){
- std::cout<<"hello\n"<<std::endl;
- std::cout<<pthread_self()<<std::endl;
- sleep(1);
- }
- }
- void print_nice(void){
- while(1){
- std::cout<<"nice\n"<<std::endl;
- std::cout<<pthread_self()<<std::endl;
- usleep(500000);
- }
- }
- int main(int argc,char *argv[]) {
- int i;
- i=10;
- std::cout<<std::endl;
- boost::thread thread1(&print_hello);
- boost::thread thread2(&print_nice);
- cout<<dec<<i<<" "<<hex<<i<<endl;
- cout<<dec<<thread1.get_id()<<std::endl;
- cout<<dec<<thread2.get_id()<<std::endl;
- thread1.join();
- thread2.join();
- return true;
- }
阅读(1571) | 评论(0) | 转发(1) |