支持HW团队,就支付宝领取下面的红包吧! (打开支付宝就能领取!er1OEj73Uj), (打开支付宝收索“516503473”), 你领取消费,HW有奖励。红包使用无条件限制,有条件请注意是不是有病毒。

Login or Sign up | Validate
| Search

博主:初学MPEG

初学MPEG 本博客-采用Python的web框架Django与Mysql数据库,致力于对Python、Django的了解 与研究
Django技术QQ群:XXXXXXX
Python技术QQ群:XXXXXXX

Category

Keywords

本站最新博文

友情链接  

[转]BOOST 线程完全攻略 - 结束语

类别:STL、Boost 状态:游客可见,可回,自己可关联(良好) 阅读:5980 评论:0 时间:April 12, 2012, 9:58 a.m.
关键字: boost Thread

 l来源:http://blog.csdn.net/iamnieo/article/details/2910658

全文介绍了3个boost::thread的扩展类,希望能给大家书写多线程代码带来便捷。
thread -> controlled_module_ex ->controlled_module
那么我们具体在什么情况下选用不同的扩展类呢?
1.如果你只想创建一个生命期比较短的子线程,做一件独立事务,例如统计什么的,那么不需要用到扩展类
void threadCount()
{
int num = 0;
  for(int i=0;i<1000000;i++)
{
 num+=i;
}
cout << num << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
   boost::thread thd(threadCount);
   thd.join();
}

2.如果你想开一个子线程,生命期很长,例如后台监控网络数据包,但是主线程要能有效的终止这个子线程,那么就要用到controlled_module

class mymonitor
{
public:
  virtual bool work()
{
  monitor all socket packets
  return true;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
  mymonitor m;
  m.start();
  //........
  m.stop();
  return 0;
}
3.如果子线程不光生命周期长,而且与主线程经常有消息通讯,或数据传递等等,那么就要用到controlled_module_ex,例如TCP监听服务子线程,controlled_module_ex是最常用到的一个类,至于完整的范例,例如如何实现tcpserver,有时间我会把代码也贴出来。
 
4.如果子线程是一个有串行事务逻辑的,例如第一步登录银行系统,第二部破解系统密码,第三部拿钱 开个玩笑:),那么就要用到thread类了
操作:

Please Login (or Sign Up) to leave a comment