1、创建线程
当创建了一个Thread对象后, 线程立刻开始执行;
mutex mu;
void print(atom_int & x, const string & str)
{
try
{
mu.lock();
std::cout << "some opreators" << std::endl;
mu.unlock();
}
catch (...)
{
mu.unlock();
}
}
那么我摩恩可以这样使用Thread对象:
int main()
{
atom_int x;
thread(printing, ref(x), "hello");
thread(printing, ref(x), "boost");
this_thread::sleep(posix_time::seconds(2)); //睡2秒
}
join 一直阻塞等待,知道线程结束。
detach() 与线程执行体分离,此后Thread对象不代表任何线程体,失去对线程的控制
使用bind 和 function;
具体使用参见:bind 使用 function使用
thread(printing, ref(x), "hello");
thread(printing, ref(x), "boost");
thread(printing, ref(x), "boost");