码迷,mamicode.com
首页 > 编程语言 > 详细

转移线程的所有权

时间:2019-09-04 20:53:02      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:term   一个   mina   程序   void   func   转移   此刻   fun   

void function();

void function1();

std::thread t1( function );   //启动一个新线程t1与function关联

std::thread t2 = std::move(t1); //将t1限行的转移给t2

t1 = std::thread( function1 ); //启动一个临时的对象与function1关联

std::thread t3; //默认构造一个t3,无任何关联

t3 = std::move(t2);//将t2显性的转移给t3,此刻t2无任何关联

t1 = std::move(t3);//因为t1已经有一个关联,此时会调用std::terminate()来终止程序

 

std::thread还支持return 来转移

std::thread g()

{

  void t1(int i);

  std::thread f(t1,40);

  return f;

}

 

转移线程的所有权

标签:term   一个   mina   程序   void   func   转移   此刻   fun   

原文地址:https://www.cnblogs.com/penuel/p/11461234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!