C++ Atomic::load() 函数



C++ 的std::atomic::load()函数用于检索当前值,而无需执行任何修改。它提供了一个同步读取操作,在多线程环境中提供一致性,防止数据竞争并确保检索到的值反映了最近的修改。

语法

以下是 std::atomic::load() 函数的语法。

T load (memory_order sync = memory_order_seq_cst) const volatile noexcept;
T load (memory_order sync = memory_order_seq_cst) const noexcept;

参数

  • sync - 指示操作的同步模式。

返回值

它返回原子变量的当前值。

异常

此成员函数从不抛出异常。

示例

在以下示例中,我们将考虑 load() 函数的基本用法。

#include <iostream>
#include <atomic>
int main()
{
    std::atomic<int> x(12);
    int a = x.load();
    std::cout << "Value: " << a << std::endl;
    return 0;
}

输出

以上代码的输出如下:

Value: 12

示例

考虑以下示例,我们将使用 std::memory_order_acquire 作为 load() 函数的参数。

#include <iostream>
#include <atomic>
int main()
{
    std::atomic<char> x('A');
    char a = x.load(std::memory_order_acquire);
    std::cout << "Value: " << a << std::endl;
    return 0;
}

输出

以下是以上代码的输出:

Value: A
atomic.htm
广告