线程

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

• 原子库:

http://www.cnblogs.com/ittinybird/p/4830834.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值