首页 > 解决方案 > 是否 C++标头在执行并发时使用硬件支持,或者纯粹是基于算法的解决方案

问题描述

C++ 互斥锁是如何在幕后实现的?它是否仅使用 Decker、Peterson 或其他算法来强制互斥,或者它是否还使用硬件支持,例如中断广告比较和交换 (CAS)。

是否可以在没有任何硬件支持的情况下实现由互斥锁和条件变量组成的整个多线程库?

标签: c++multithreadingconcurrencymutex

解决方案


它要求操作系统执行此操作。

在可能会使用 pthreads 的 Linux 上(如何在 linux kernel 3.2 中实现 pthread?)。

在 Windows 上,它使用 Windows API。您可以尝试向 Microsoft 询问该问题。

标准库实现不会进行直接硬件访问。这就是操作系统的用途。


推荐阅读