中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++中promise函數的用法是什么

c++
小億
121
2024-03-15 16:02:58
欄目: 編程語言

在C++中,promise是一種用于在一個線程中設置某個值,然后在另一個線程中獲取該值的機制。promise對象允許一個線程設置一個值(通常是一個異步操作的結果),而future對象允許另一個線程獲取這個值。

promise對象通常與future對象一起使用,以便在一個線程中設置值,然后在另一個線程中獲取值。promise對象提供了set_value()方法來設置值,并且可以通過get_future()方法獲取一個與這個promise對象相關聯的future對象。

以下是一個簡單的示例,演示了promise和future的基本用法:

#include <iostream>
#include <thread>
#include <future>

void setValue(std::promise<int> &prom) {
    prom.set_value(42);
}

int main() {
    std::promise<int> prom;
    std::future<int> fut = prom.get_future();

    std::thread t(setValue, std::ref(prom));

    int value = fut.get();

    std::cout << "Value received from another thread: " << value << std::endl;

    t.join();

    return 0;
}

在上面的示例中,我們創建了一個promise對象和一個future對象。然后我們創建了一個新的線程,并將promise對象傳遞給該線程的函數。在該函數中,我們調用set_value()方法設置值為42。在主線程中,我們通過調用future對象的get()方法獲取這個值,并打印出來。

需要注意的是,promise對象只能設置一次值。如果嘗試多次設置值,會拋出一個std::future_error異常。

0
永川市| 庆城县| 双柏县| 南涧| 土默特右旗| 犍为县| 徐州市| 阿尔山市| 始兴县| 建湖县| 城市| 武鸣县| 巴林右旗| 丹巴县| 陵水| 灯塔市| 江孜县| 武安市| 将乐县| 鹤庆县| 水富县| 温泉县| 巨鹿县| 景谷| 东城区| 洛浦县| 克拉玛依市| 通州市| 桃园县| 桂林市| 乡城县| 郴州市| 阿荣旗| 酉阳| 紫金县| 金寨县| 梨树县| 龙胜| 栖霞市| 甘肃省| 长寿区|