boost库中thread多线程详解6——线程组简单例子

来源:互联网 发布:centos 权限不够 编辑:程序博客网 时间:2024/05/29 14:27
[cpp] view plaincopyprint?
  1. namespace   
  2. {  
  3.     struct Run  
  4.     {  
  5.         void operator()(void)  
  6.         {  
  7.             std::cout << __FUNCTION__ << std::endl;  
  8.         }  
  9.     };  
  10.       
  11.     void run(void)  
  12.     {  
  13.         std::cout << __FUNCTION__ << std::endl;  
  14.     }  
  15. }  
  16.   
  17. void test_thread_group2()  
  18. {  
  19.     Run r;  
  20.     boost::thread_group grp;  
  21.   
  22.     // 两种方法通过线程组增加线程  
  23.     boost::thread *t = grp.create_thread(r);    // 使用create_thread  
  24.     grp.add_thread(new boost::thread(run)); // 使用add_thread  
  25.   
  26.     grp.join_all();  
  27.       
  28.     // 两种方法移除线程  
  29.     grp.remove_thread(t);  
  30.     // delete t;  
  31. }