C++多线程同步的几种方式 |
您所在的位置:网站首页 › 蓝色系忧郁 › C++多线程同步的几种方式 |
文章目录
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 asyncC++11并没有提供semaphore的API,信号量太容易出错了(too error prone),通过组合互斥锁(mutex)和条件变量(condition variable)可以达到相同的效果,且更加安全。 mutex官网介绍:mutex 它包含以下三个部分: Mutex type Locks:lock_guard, unique_lock Functions:try_lock,lockexample: mutex的实现也很简单,在进入临界区之前调用该变量(mtx)的lock函数,出临界区之前调用该变量的(mtx)的unlock函数。所以程序会连续输出50个'*'或者连续输出50个'$',而不会'*' '$'交替输出。 但是考虑这样一个问题,std::cout std::cout if (x%2==0) std::cout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |