Namensräume
Varianten
Aktionen


 
 
Thema Support-Bibliothek
Threads
Original:
Threads
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
thread(C++11)
this_thread Namespace
Original:
this_thread namespace
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
get_id(C++11)
yield(C++11)
sleep_for(C++11)
sleep_until(C++11)
Gegenseitigen Ausschluss
Original:
Mutual exclusion
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
mutex(C++11)
timed_mutex(C++11)
Generische Sperrverwaltung
Original:
Generic lock management
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
lock_guard(C++11)
unique_lock(C++11)
defer_lock_t
try_to_lock_t
adopt_lock_t
(C++11)
(C++11)
(C++11)
lock(C++11)
try_lock(C++11)
defer_lock
try_to_lock
adopt_lock
(C++11)
(C++11)
(C++11)
Zustand Variablen
Original:
Condition variables
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
condition_variable(C++11)
condition_variable_any(C++11)
notify_all_at_thread_exit(C++11)
cv_status(C++11)
Futures
Original:
Futures
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
promise(C++11)
future(C++11)
shared_future(C++11)
packaged_task(C++11)
async(C++11)
launch(C++11)
future_status(C++11)
future_error(C++11)
future_category(C++11)
future_errc(C++11)
 
std::future
future::future
future::~future
future::operator=
future::share
Erste das Ergebnis
Original:
Getting the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
future::get
State
Original:
State
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
future::valid
future::wait
future::wait_for
future::wait_until
 
<tbody> </tbody>
definiert in Header <future>
template< class T > class future;
(1) (seit C++11)
template< class T > class future<T&>;
(2) (seit C++11)
template<> class future<void>;
(3) (seit C++11)

Das Klassen-Template std::future bietet einen Mechanismus, um auf das Ergebnis von asynchronen Operationen zuzugreifen

  • Ein asynchroner Vorgang (erstellt über std::async, std::packaged_task oder std::promise) kann ein std::future Objekt einem Auslöser einer asynchronen Operation bereitstellen.
  • Der Auslöser des asynchronen Vorgangs kann dann eine Vielzahl von Methoden zur Abfrage, zum Warten auf, oder zum Extrahieren eines Wertes aus std::future. Diese Methoden können blockieren, wenn die asynchrone Operation noch keinen Wert geliefert hat.
  • Wenn der asynchrone Vorgang bereit ist, dem Auslöser ein Ergebnis bereitzustellen, kann es dies durch Änderung des gemeinsamen Zustands tun (z.B. std::promise::set_value), der mit dem std::future des Auslösers verbunden ist.

Beachten Sie, dass std::future einen gemeinsamen Zustand referenziert, der nicht mit anderen asynchronen Rückgabeobjekten gemein ist (im Gegensatz zu std::shared_future).

Member-Funktionen

baut das Zukunft Objekt
Original:
constructs the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
zerstört sich das Zukunft Objekt
Original:
destructs the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
bewegt das Zukunft Objekt
Original:
moves the future object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
gibt eine shared_future Bezugnahme auf das Ergebnis zugeordnet *this
Original:
returns a shared_future referring to the result associated to *this
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
Zugriff auf das Ergebnis
gibt das Ergebnis
Original:
returns the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
State
Original:
State
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
überprüft, ob das Future einen shared State mit einem promise teilt.
Original:
checks if the future has shared state with a promise
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
wartet darauf dass das Ergebnis verfügbar wird
Original:
waits for the result to become available
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)
waits for the result, returns if it is not available for the specified timeout duration
(öffentliche Elementfunktion)
wartet auf das Ergebnis liefert, wenn es nicht verfügbar ist, bis spezifizierte Zeit erreicht worden ist
Original:
waits for the result, returns if it is not available until specified time point has been reached
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(öffentliche Elementfunktion)

Beispiel

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

int main()
{
    // future from a packaged_task
    std::packaged_task<int()> task([](){ return 7; }); // wrap the function
    std::future<int> f1 = task.get_future();  // get a future
    std::thread(std::move(task)).detach(); // launch on a thread

    // future from an async()
    std::future<int> f2 = std::async(std::launch::async, [](){ return 8; });

    // future from a promise
    std::promise<int> p;
    std::future<int> f3 = p.get_future();
    std::thread( [](std::promise<int>& p){ p.set_value(9); }, 
                 std::ref(p) ).detach();

    std::cout << "Waiting...";
    f1.wait();
    f2.wait();
    f3.wait();
    std::cout << "Done!\nResults are: "
              << f1.get() << ' ' << f2.get() << ' ' << f3.get() << '\n';
}

Output:

Waiting...Done!
Results are: 7 8 9

Siehe auch

(C++11)
betreibt eine Funktion asynchron (möglicherweise in einem neuen Thread) und gibt einen std::future, die das Ergebnis halten wird
Original:
runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Funktions-Template)
wartet auf einen Wert (eventuell von anderen Futures verwiesen wird), die asynchron ist
Original:
waits for a value (possibly referenced by other futures) that is set asynchronously
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(Klassen-Template)