Справочники C++ promise

Что такое promise в C++?

std::promise в языке программирования C++ предоставляет механизм для связи потока, который обещает предоставить значение в будущем (поставщик), с потоком, который ожидает получение этого значения (потребитель). std::promise является частью библиотеки для работы с многопоточностью (<future>), предоставляя удобный способ передачи значений между потоками.

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

// Функция, которая обещает предоставить значение в будущем
void provider(std::promise<int>& promiseObj) {
    int result = 42;
    // Установка значения в promise
    promiseObj.set_value(result);
}

// Функция, которая ожидает получение значения
void consumer(std::future<int>& futureObj) {
    // Ожидание значения от promise
    int result = futureObj.get();
    std::cout << "Received value from provider: " << result << std::endl;
}

int main() {
    // Создание promise и связывание его с future
    std::promise<int> promiseObj;
    std::future<int> futureObj = promiseObj.get_future();

    // Создание потоков для поставщика и потребителя
    std::thread providerThread(provider, std::ref(promiseObj));
    std::thread consumerThread(consumer, std::ref(futureObj));

    // Ожидание завершения потоков
    providerThread.join();
    consumerThread.join();

    return 0;
}
Комментарии
Добавить комментарий

Пока комментариев нет