据我所知,在旧版本的Boost boost::mutex
实现中,Windows是使用临界区域完成的。 但在最新版本的Boost 1.51中,我发现互斥体的实现是基于事件的。
有人知道这个变化背后的理由是什么吗? 是否因性能原因而完成? 关键部分是否被弃用?
通过使用boost
我们总是有最好的方法没有改变是不是太好了? 在boost
新版本中, boost::mutex
是作为一个自旋锁实现的,但是在windows事件的帮助下避免了繁忙的等待,而且这个事件只会在需要的时候创建,因此它的重量非常轻,性能也非常高启用boost
使用这个轻量级mutex
锁定时等待! 我觉得这很好