C++ 基本同步
示例
线程同步可以使用互斥锁以及其他同步原语来完成。标准库提供了几种互斥锁类型,但最简单的是std::mutex。要锁定互斥锁,请在其上构造一个锁。最简单的锁类型是std::lock_guard:
std::mutex m;
void worker() {
std::lock_guard<std::mutex> guard(m); //获取互斥锁
//此处同步代码
} //当防护超出范围时,互斥体会自动释放使用std::lock_guard互斥锁在锁定对象的整个生命周期内都处于锁定状态。如果您需要手动控制锁定区域,请std::unique_lock改用:
std::mutex m;
void worker() {
//默认情况下,从互斥量构造一个unique_lock将锁定该互斥量
//通过传递std::defer_lock作为第二个参数,我们
//可以改为以未锁定状态构造后卫,并且
//稍后手动锁定。
std::unique_lock<std::mutex> guard(m, std::defer_lock);
//互斥锁尚未锁定!
guard.lock();
//关键部分
guard.unlock();
//互斥体再次释放
}更多线程同步结构
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下