c++ - Windows 的 Boost Mutex 实现

标签 c++ windows multithreading boost

据我所知,在旧版本的 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/

相关文章:

c++ - 是否存在合理的情况,其中 == 运算符不是 != 的否定?

multithreading - 在线程之间共享相机框架

c++ - 如何在接收到满足语句的多个输入时防止执行 if 语句

c++ - TensorFlow c++ API 在 session->run() 上崩溃

c - 使用从 C 扩展返回的文件描述符来读取 python 中的文件

windows - Windows 如何解释多个 VersionInfo 资源?

java - 为什么为一个目的创建 HandlerThread : to pass it's Looper to a new Handler

c# - .Wait() 和 .GetAwaiter().GetResult() 有什么区别?

C++ 行在 for 循环后不执行。循环不是无限的

c++ - Very Sleepy 如何找到符号文件?