据我所知,在旧版本的 Boost boost::mutex
中,Windows 的实现是使用临界区完成的。但是在最新版本的 Boost 1.51 中,我发现现在互斥锁的实现是基于事件的。
有人知道这种变化背后的原因是什么吗?是因为性能原因而完成的吗?关键部分会被弃用吗?
最佳答案
通过使用 boost
我们总是有最好的方法而不改变,这不是很好吗?
在 boost
的新版本中,boost::mutex
被实现为一个自旋锁,但在 Windows 事件的帮助下避免了繁忙的等待,并且该事件只会在需要时创建,因此它的重量非常轻,性能非常高,还可以让 boost
使用这个轻量级的 mutex
进行定时等待!我觉得这很好
关于c++ - Windows 的 Boost Mutex 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014635/