【并发编程九】c++线程同步——互斥(mutex)
- 简介:
本篇文章,我们详细的介绍下c++标准库提供的线程同步方法中的第一个——互斥(mutex)。
一、互斥
- 互斥算法避免多个线程同时访问共享资源。这会避免数据竞争,并提供线程间的同步支持。
前四个定义于头文件 <mutex>,后两个定义于头文件 <shared_mutex>
互斥类型 | 解释 |
---|---|
mutex(C++11) | 提供基本互斥设施(类) |
timed_mutex(C++11) | 提供互斥设施,实现有时限锁定(类) |
recursive_mutex(C++11) | 提供能被同一线程递归锁定的互斥设施(类) |
recursive_timed_mutex(C++11) |
提供能被同一线程递归锁定的互斥设施,并实现有时限锁定(类) |
shared_mutex(C++17) | 提供共享互斥设施(类) |
shared_timed_mutex(C++14) | 提供共享互斥设施并实现有时限锁定(类) |