多线程 - 其他标准库函数
多线程 - 其他标准库函数
【总结】前面用到过的标准库函数
创建对象类
std::thread mythread(mythreadfn);,创建线程类对象- 参数 
- 入口函数
 - 其他要传递给入口函数的变量
 
 - 成员函数 
- join()
 - detach()
 - joinable()
 
 
- 参数 
 std::mutex mymutex;,创建互斥量对象std::lock_guard<std::mutex> sbguard(my_mutex);,创建智能互斥量对象- 参数 
- 互斥量对象
 - std::adopt_lock,第二参数,标志不需要再lock
 
 
- 参数 
 std::unique_lock<std::mutex> sbguard(my_mutex);,创建智能互斥量对象- 参数 
- 互斥量对象
 - std::adopt_lock,第二参数,标志不需要再lock
 - std::try_to_lock,第二参数,尝试去lock(),若没有锁定成功则立即返回,而不会阻塞
 - std::defer_lock,第二参数,初始化一个没有加锁的mutex
 
 - 成员函数 
- lock(),加锁,和互斥量用法一样
 - unlock(),解锁,和互斥量用法一样
 - try_lock(),尝试给互斥量加锁,如果拿不到锁则返回false,否则返回true。不阻塞
 - release(),返回它管理的mutext对象指针,并释放所有权
 
 
- 参数 
 
其他操作类
std::this_thread::get_id();,获取线程idstd::call_once(),保证某个函数只被调用一次std::ref(),用于多线程中对象的引用传递std::move(),用于多线程中智能指针的所有权转移休眠操作
std::chrono::milliseconds dura(2000); // 【20s】 std::this_thread::sleep_for(dura); // 【休息20s】
std::
链接到当前文件 0
没有文件链接到当前文件