1、线程传参默认为拷贝。引用的方法如下:
在线程内,将对象的字段a和b设置为新的值,但是在线程调用结束后,这两个字段的值并不会改变。
这样由于引用的实际上是局部变量node的一个拷贝,而不是node本身。
在将对象传入线程的时候,调用std::ref,将node的引用传入线程,而不是一个拷贝。
a. thread t(func,std::ref(node));
b. 也可以使用类的成员函数作为线程函数,示例如下
class _tagNode{
public:
void do_some_work(int a);
};
_tagNode node;
thread t(&_tagNode::do_some_work, &node,20);
来自 https://www.cnblogs.com/wangguchangqing/p/6134635.html
2、转移所有权
thread t1(f1);
thread t3(move(t1));
3、获取id
• 通过thread的实例调用get_id()直接获取
• 在当前线程上调用this_thread::get_id()获取
4、标准线程库的使用:
https://blog.youkuaiyun.com/z_ml118/article/details/78253313