マルチスレッド処理で他のスレッドから戻り値がある場合がある。 戻り値を受け取る方法としてCompletableFutureがある。 マルチスレッドの中では、1つのスレッドの戻り値を受け取って処理を行いたい場合がある。 その場合、戻り値が必要な処理は、戻り値を受け取るまで処理がブロックされる。 戻り値を返す処理が終了したら、戻り値を取得し、後続の処理を行う。 CompletableFutureは前段の処理が終了したら自動的にその結果を次の処理を渡して実行するようにできる。 CompletableFutureは戻り値のある非同期処理をsupplyAsyncメソッドで起動する。 import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.c
![【マルチスレッド】CompletableFutureについて - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/df5e32f66d9c70309dd3a4b1831e1a87fbde1dfe/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9JUUzJTgwJTkwJUUzJTgzJTlFJUUzJTgzJUFCJUUzJTgzJTgxJUUzJTgyJUI5JUUzJTgzJUFDJUUzJTgzJTgzJUUzJTgzJTg5JUUzJTgwJTkxQ29tcGxldGFibGVGdXR1cmUlRTMlODElQUIlRTMlODElQTQlRTMlODElODQlRTMlODElQTYmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTI4OTg5ZjNlMjZkNDc0YThiZGYxYzc5ZTUxZmQzZjRm%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwcnlvLWthLW5vdHRpJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz04YTgzOWRkYTE1NzViODc5NzUxYTlkNGQ2N2ViODg2Ng%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D0b59528640f662bf5ef146efba5ad522)