Files

30 lines
676 B
C++

//
// Created by light on 19-11-5.
//
#include <iostream>
#include <thread>
using namespace std;
class X {
public:
void do_length_work() {};
};
void process_big_object(std::unique_ptr<X>)
{
// TODO
}
int main() {
X my_x;
thread t(&X::do_length_work, &my_x); // 1
std::unique_ptr<X> p(new X);
p->do_length_work();
std::thread tt(process_big_object,std::move(p));
//std::thread实例的可移动且不可复制性。不可复制保性证了在同一时间点,
// 一个std::thread实例只能关联一个执行线程;可移动性使得程序员可以自己决定,哪个实例拥有实际执行线程的所有权。
return 0;
}