【发布时间】:2015-02-16 04:27:28
【问题描述】:
我想跨多个线程使用一个变量。为了保护对该变量的同时访问,我想为该变量添加一个互斥锁。但是互斥锁和临界区更适合一段代码。在变量的情况下,在使用变量的任何地方放置锁定和解锁代码看起来很难看。除了互斥锁和临界区还有其他更简单的方法吗?
【问题讨论】:
标签: c++ multithreading mutex critical-section
我想跨多个线程使用一个变量。为了保护对该变量的同时访问,我想为该变量添加一个互斥锁。但是互斥锁和临界区更适合一段代码。在变量的情况下,在使用变量的任何地方放置锁定和解锁代码看起来很难看。除了互斥锁和临界区还有其他更简单的方法吗?
【问题讨论】:
标签: c++ multithreading mutex critical-section
如果它是您想要保护的一个变量,则使用 std::atomic(如果您使用的是 c++11)或 boost::atomic 如果不是。
如果关键部分中有多个共享变量,那么您需要注意缓存一致性问题。所以我会在关键部分周围使用互斥锁
【讨论】: