Ein Future (englisch Zukunft) oder Promise (englisch Versprechen) bezeichnet in der Programmierung einen Platzhalter (Proxy) für ein Ergebnis, das noch nicht bekannt ist, meist weil seine Berechnung noch nicht abgeschlossen ist.Ein Future ist meist das Ergebnis eines asynchronen Aufrufs einer Funktion oder einer Methode und kann verwendet werden, um auf das Ergebnis zuzugreifen, sobald es verfügbar ist. Diese Art der Programmierung erlaubt eine weitgehend transparente Parallelisierung nebenläufiger Prozesse. Das Konzept der Futures wurde 1977 in einem Papier von Henry Baker und Carl Hewitt vorgestellt.Automatisches Pipelining von Futures wurde in den 1980ern zwei mal unabhängig voneinander erfunden, einmal bei Project Xanadu (ca. 1989) und von Barbara Liskov (1988).
Funktion
Futures sind ein Konstrukt zur asynchronen Interprozesskommunikation. Konzeptionell bietet ein Future eine get- oder join-Funktion, die so lange blockiert, bis das Ergebnis vorliegt, und dieses dann zurück