gpt4 book ai didi

multithreading - C++ 中的内存栅栏/屏障 : does boost or other libraries have them?

转载 作者:行者123 更新时间:2023-12-04 04:31:20 26 4
gpt4 key购买 nike

这些天我正在阅读有关内存栅栏和屏障的内容,作为同步多线程代码和避免代码重新排序的一种方法。

我通常在 Linux 操作系统下使用 C++ 进行开发,并且大量使用 boost 库,但我找不到任何与之相关的类。你知道boost中是否存在栅栏的内存屏障或者是否有办法实现相同的概念?如果没有的话我可以去哪个好的图书馆看看?

最佳答案

Boost 中还没有低级内存屏障,但有一个提议的 boost.atomic 库提供了它们。

编译器提供自己的内部函数或库函数,例如用于 Visual Studio 的 gcc 的 __sync_synchronize()_mm_mfence()

C++0x 库提供原子操作,包括 std::atomic_thread_fence 形式的内存栅栏。 。尽管自 V4.4 以来 gcc 已经提供了各种形式的 C++0x 原子,但 V4.4 或 V4.5 都不包含这种形式的栅栏。我的(商业)just::thread库提供了 C++0x 原子的完整实现,包括 g++ 4.3 和 4.4 以及 Microsoft Visual Studio 2005、2008 和 2010 的栅栏。

关于multithreading - C++ 中的内存栅栏/屏障 : does boost or other libraries have them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3851398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com