c++ - 是否 C++标头在执行并发时使用硬件支持,或者纯粹是基于算法的解决方案
问题描述
C++ 互斥锁是如何在幕后实现的?它是否仅使用 Decker、Peterson 或其他算法来强制互斥,或者它是否还使用硬件支持,例如中断广告比较和交换 (CAS)。
是否可以在没有任何硬件支持的情况下实现由互斥锁和条件变量组成的整个多线程库?
解决方案
它要求操作系统执行此操作。
在可能会使用 pthreads 的 Linux 上(如何在 linux kernel 3.2 中实现 pthread?)。
在 Windows 上,它使用 Windows API。您可以尝试向 Microsoft 询问该问题。
标准库实现不会进行直接硬件访问。这就是操作系统的用途。
推荐阅读
- reactjs - React:如何在映射中根据状态计数器分配键和增加状态计数器?
- c++ - 在我的项目中创建对象数组的问题:预期的 unqualified-id
- python - Tkinter 在一个框架中创建多个按钮
- elasticsearch - fscrawler 容器不健康(退出代码 126)
- c++ - C++ 实现抽象类
- c - c 打印字符串的实际内容
- java - 嵌入式 Tomcat 给出“不允许 HTTP 升级到 WebSocket”错误
- html - 单击按钮时的 HTML 弹出框
- java - @Controller 类未重定向到指定页面
- python - python中没有名为rsi2的模块?无法通过 pip 导入