Boost线程学习简记

来源:互联网 发布:美股券商知乎 编辑:程序博客网 时间:2024/06/08 09:42

Boost线程学习简记

头文件

#include<boost/thread.hpp>

创建线程

boost::thread是线程类,创建线程非常简单,只需要创建一个thread对象,并把线程工作函数作为参数传给构造参数。

void output()

{

   std::cout<<"output"<<std::endl;

}

boost::thread t(output);

 

传递参数

如果我们的工作函数需要参数怎么办呢?

void output2(int v)

{

   std::cout<<"output : "<<v<<std::endl;

}

boost::thread t(output2,4);

如果我们的线程函数有多个参数,不论什么类型,都写成如下形式(只要不超过十个)

boost::thread t(fun,arg1,arg2,);

 

合并到主线程

t.join();

等待线程函数执行完毕

 

Sleep函数

boost::this_thread::sleep()

这里的sleep()函数并不是休眠多久的意思,而是睡眠到什么时候。

所以如果我们想要他休眠一秒钟,就要先计算一秒钟之后的时间是多少然后传给sleep

   //计算出sec+0.0000000001*nsec秒后的时间

boost::xtime getNextTime(int sec,int nsec)

   {

      boost::xtime t;

      boost::xtime_get(&t, boost::TIME_UTC);

      t.sec += sec;

      t.nsec += nsec;

      returnt;

   }

boost::this_thread::sleep(getNextTime(1,0));

原创粉丝点击