Slide 11
Slide 11 text
今までの並行処理の書き方 欠点の例
- findUser()が例外を投げると、user.get()を呼び出すときに例外を
スローし、fetchOrder()は自身のスレッドで実行し続けるが、結果は
取得できない
try (ExecutorService esvc = Executors.newFixedThreadPool(2)) {
Future user = esvc.submit(() -> findUser()); ⬅ 例外が発生
Future order = esvc.submit(() -> fetchOrder()); ⬅ 実行し続ける
System.out.println(user.get()); ⬅ ここで例外がスローされる
System.out.println(order.get()); ⬅ すでにエラーで落ちて取得できない
}