C++多线程同步的几种方式

您所在的位置:网站首页 蓝色系忧郁 C++多线程同步的几种方式

C++多线程同步的几种方式

2024-02-21 10:18| 来源: 网络整理| 查看: 265

文章目录 Overview mutex lock_guard unique_lock condition_variable future promise packaged_task async Reference

Overview

C++的多线程同步方式有这么几种:

mutex lock_guard unique_lock condition_variable future promise packaged_task async

C++11并没有提供semaphore的API,信号量太容易出错了(too error prone),通过组合互斥锁(mutex)和条件变量(condition variable)可以达到相同的效果,且更加安全。

mutex

官网介绍:mutex 它包含以下三个部分:

Mutex type Locks:lock_guard, unique_lock Functions:try_lock,lock

example: mutex的实现也很简单,在进入临界区之前调用该变量(mtx)的lock函数,出临界区之前调用该变量的(mtx)的unlock函数。所以程序会连续输出50个'*'或者连续输出50个'$',而不会'*' '$'交替输出。

但是考虑这样一个问题,std::cout std::cout if (x%2==0) std::cout



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3