多线程编程(一)

引用头文件thread

创建线程:thread mythread(多线程函数)

阻塞主线程直到子线程运行完毕:mythread.join() 

分离主线程和子线程,使得主线程和子线程可以同步执行下去(一旦分离后,就无法再使线程join),主线程结束后子线程也结束:mythread.detach()

检查线程是否能join或者detach:mythread.joinable()

 

std::this_thread::get_id():获取当前线程的ID

线程函数的参数有引用时,从主线程中传入参数,并不是正常的引用,而是又复制了一个值供子线程使用。也就是如果传入的是类对象,则类对象会拷贝构造一个对象传入子线程。且线程函数的参数必须为const 类名& 变量名

 

由于线程函数传入的类对象引用不是真正的引用,是传入了拷贝构造的新的对象。所以为了将真正的对象传入非复制,则需要用到:std::ref(),此函数中传入类对象再传入线程函数,即可实现直接传入。这时线程函数的参数不需要再加上const

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值