C++ 多线程 学习笔记

C++ 多线程 学习笔记_第1张图片

线程睡眠很稳定,但无线程睡眠不稳定

C++ 多线程 学习笔记_第2张图片


线程调用类方法:

C++ 多线程 学习笔记_第3张图片


有参数时调用方法:

C++ 多线程 学习笔记_第4张图片


当参数为引用时:

C++ 多线程 学习笔记_第5张图片


当同一资源被多个线程同时引用时,为防止资源抢占,使用mutex,互斥锁

头文件#include "mutex"

C++ 多线程 学习笔记_第6张图片


lock_guard<类型> 变量名(锁变量);

作用,为防止死锁发生,它可以进行锁的自动加锁和解锁

C++ 多线程 学习笔记_第7张图片


unique_lock<类型> 变量名(锁名, 变参参数);

C++ 多线程 学习笔记_第8张图片

延时加锁,直接这样定义数据会出现混乱

C++ 多线程 学习笔记_第9张图片

必须手动锁定 

C++ 多线程 学习笔记_第10张图片

直接用变参std::adopt_lock也会直接造成数据混乱 

C++ 多线程 学习笔记_第11张图片

std::adopt_lock只是用于接管之前的锁mtx,所以在这一行之前需要对mtx进行lock才会真正的被lock

你可能感兴趣的:(学习,笔记)