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
廣告