线程
进程
进程和线程的关系
join和detach方法的区别
join方法:
detach方法:
一个线程包含:
线程调用
1.普通函数
2.类成员函数
3.lambad表达式
3.仿函数
4.bind
5.有参函数
6.形参为引用传递
this_thread
1.this_thread::get_id()(获取线程id)
2.this_thread::sleep_for()(线程休眠)
线程同步与mutex
1.什么是线程同步
2.线程同步机制
3.互斥锁(mutex)
加锁前
加锁后
4.互斥锁的特性
5.lock和unlock
1.创建互斥量
2.锁定互斥量
3.访问资源
4.解锁互斥量
6.死锁
7.mutex的四种类型
1.std::mutex(基本互斥锁)
2.std::recursive_mutex(递归锁)
3.std::timed_mutex(时限锁)
4.recursive_timed_mutex(递归时限锁)
lock_guard
1.lock_guard是什么
2. 为什么要用lock_guard
3.案例
4.lock_guard特性
unique_lock
1.为什么会有unique_lock
2.lock_gurad的缺陷
unique_lock是为了解决lock_guard存在的问题(lock_guard无法)
lock_guard存在下面问题
3.unique_lock的构造
4.unqiue_lock的第二个参数
1.defer_lock只是建立一个关系,不会立即锁定
2.defer_lock联合lock和unlock进行上锁和解锁
3.try_to_lock(尝试上锁)
4.adopt_lock
4.unqiue_lock的特点