数行を出力して 2 秒間スリープする callable を 1 つ作成しました。この callable の 10 個のインスタンスを作成し、ExecutorService の invokeALL メソッドに渡すメイン メソッドを作成しました。
service.invokeAll(callableList, 3, SECONDS);
返された Future オブジェクトのリストを繰り返しているとき。CancellationException が発生しています。
すべてのfuture.get()呼び出しがCancellationExceptionを引き起こすのか、または完了できずにキャンセルされたタスクのみを引き起こすのかをテストしています。
invokeALLの時間設定に関係なく、すべての結果またはすべてのCancellationExceptionsを取得しています。
future.get()を呼び出すと、少なくともいくつかのタスクが完了して結果が返されることを本当に期待していました。