转移线程的所有权

Posted penuel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转移线程的所有权相关的知识,希望对你有一定的参考价值。

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;

 

以上是关于转移线程的所有权的主要内容,如果未能解决你的问题,请参考以下文章

线程的状态

如何转移 Google Cloud 项目所有权?

更新后崩溃(转移iOS App的所有权)

如何将值的所有权从 Rust 转移到 C 代码?

在不影响当前排名的情况下转移包括银行业务在内的应用程序所有权[重复]

如何将 TFVC (2008)(包括历史)上的所有内容转移到 Git 并最终转移到 GitHub?