【发布时间】:2016-01-10 20:43:03
【问题描述】:
我知道 Boost 支持 mutex 和 lock_guard,可用于实现临界区。
但是 Windows 有一个用于关键部分的特殊 API(请参阅 EnterCriticalSection 和 LeaveCriticalSection),它比互斥锁快很多(对于很少竞争的短代码段)。
因此我的问题是——在 Boost 中是否可以利用这个 API,并在其他平台上回退到基于 spinlock/mutex/futex 的实现?
【问题讨论】:
-
在有用的指针中:codereview.stackexchange.com/questions/1836/… 可能会很好,这个邮件列表讨论 comments.gmane.org/gmane.comp.lib.boost.devel/54585(从 2001 年开始)
-
对于琐事:Boost Smart Pointer、Boost Signals2、Boost Asio 和 Boost Container 包含使用 CriticalSection 的实现细节(你可以从那里删除包装器,可能)
-
不是重复的 IMO;这个问题是关于 Boost 的,另一个问题是关于标准库的。
-
@HarryJohnston 已修复
标签: c++ windows boost critical-section