Довідники 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;
}
Коментарі
Додати коментар

Поки що коментарів немає