Modernes C++ programmieren

Okt 23, 2024

lst-1038-book.cpp

// https://godbolt.org/z/o9oYrvMcj 
#include <iostream>
#include <future>  // async
#include <chrono>
using std::cout; using std::endl; using namespace std::chrono;
long fib(long n) { return n<=1 ? n : fib(n-1)+fib(n-2); }
int main() {
    auto f43 = std::async(fib, 43);
    while(true) {
        auto fertig = f43.wait_for(500ms);
        if(fertig==std::future_status::timeout) {
            std::cout << "noch nicht..." << std::endl;
        } else {
            break;
        }
    }
    // abholen, ist sofort da
    cout << "fib(43): " << f43.get() << endl; // Ausgabe: fib(43): 701408733
}