/** * This package contains basic building blocks creating fast, asynchronous, non-blocking parallel code. * <p> * A {@linkplain io.vavr.concurrent.Future} represents an asynchronous read-only task. It is a placeholder for a * value that becomes available at some point. With the help of {@code Future} we efficiently perform many non-blocking * operations in parallel. The value of a Future is supplied concurrently and can subsequently be used. Multiple * concurrent tasks represented by Futures can be composed to a single Future. * <p> * While Futures are concurrent read-only tasks, a {@linkplain io.vavr.concurrent.Promise} creates a writable-once * Future. The {@code Promise} is used to complete its contained {@code Future}. * */ package io.vavr.concurrent;