zoukankan      html  css  js  c++  java
  • 转移线程的所有权

    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;

    }

  • 相关阅读:
    BZOJ 2005 能量采集
    HDU 2841 Visible Trees(莫比乌斯反演)
    hihocoder 1543
    hihocoder 1311
    hdu 6069
    hdu 6058
    hdu 6034
    拓展欧几里得
    poj 3321
    树状数组总结
  • 原文地址:https://www.cnblogs.com/penuel/p/11461234.html
Copyright © 2011-2022 走看看