同期リクエストの実現1000回リクエストを順番に実行されるサンプルコードです。関数以前のコードはエラーハンドリングに関するものなので、説明は割愛します。関数ではローカルで別で立ち上がっているRestApiServerにリクエストを投げてシステム時間を返してくれます。順番に実行されてます。1000回リクエスは5秒近くかかりました。非同期リクエストの実現1000回リクエストを10スレッドに捌けて実行されるサンプルコードです。text);}エラーハンドリングに関するコードは省略しました。1000回リクエストを捌けようとしてます。アイドルなスレッドがあれば、キューからタスクを取り出して実行する。メインスレッドでまとめる。593リクエスト処理は全部メインスレッド以外のスレッドで行われて、かかった時間もほぼ直列の1/8です。HttpClientが違います。Futureの中で使うと下記のエラーが発生します。使わないといけないです。マルチスレッド間で共有しないと、大量リクエストが発生したらリソースが枯渇してしまいます。})));下記のエラーが大量に出てきます。}リクエスト先のサーバからコネクションを勝手に切断したためエラーになったと思います。並列で数多くClientを生成すると、余計にリクエスト先のサーバとコネクションを確立し過ぎで、途中で切断されることになります。あるかどうかを考えないといけないです。下記のように実装していました。使っていますが、Futureを返せずに実際の処理結果を返そうとしていました。出力され、その後は一切処理が進まなかったです。他のスレッドに実行してくれないと、処理が進まないです。実行に使ってしまったら、処理全体が進まなくなります。)はすべてのリクエストが正常に終わります。呼び出すように実装したら、処理全体が正常に終えました。まとめほぼどの技術のハマりも同じだと思います。本質を理解したら当たり前のように見えますが、理解する前には詳しい人に聞いたり、ググったりしてバタバタしても中々解決しないとイライラしてしまいますね。今回のハマリポイント、特に3点目は色々ググっても類似のサンプルソースがなかったので、困りました。同じ問題に困っている方がいらっしゃったら、この記事が参考にできるならば嬉しいです。ここで使っているサンプルソースは下記のプロジェクトからcloneできます。リリースされて、ちょっと触ってみたので共有させていただきます。間違っているところがあればご指摘ください。*/;future1.await;future2.await;という書き方は非同期にならず、同期処理になります。