引用头文件thread
创建线程:thread mythread(多线程函数)
阻塞主线程直到子线程运行完毕:mythread.join()
分离主线程和子线程,使得主线程和子线程可以同步执行下去(一旦分离后,就无法再使线程join),主线程结束后子线程也结束:mythread.detach()
检查线程是否能join或者detach:mythread.joinable()
std::this_thread::get_id():获取当前线程的ID
线程函数的参数有引用时,从主线程中传入参数,并不是正常的引用,而是又复制了一个值供子线程使用。也就是如果传入的是类对象,则类对象会拷贝构造一个对象传入子线程。且线程函数的参数必须为const 类名& 变量名
由于线程函数传入的类对象引用不是真正的引用,是传入了拷贝构造的新的对象。所以为了将真正的对象传入非复制,则需要用到:std::ref(),此函数中传入类对象再传入线程函数,即可实现直接传入。这时线程函数的参数不需要再加上const