Java: Which practice avoids a common mistake with ExecutorService, Future, and CompletableFuture?

Difficulty:

Medium

Questions:

1

Time Limit:

2 minutes

Passing Score:

100%

Question

Which practice avoids a common mistake with ExecutorService, Future, and CompletableFuture?

  1. Ignore the ExecutorService, Future, and CompletableFuture issue and rely on team discipline instead of APIs or contracts.
  2. Silence the ExecutorService, Future, and CompletableFuture problem by using raw types, broad catches, or shared mutable state.
  3. Do not block casually inside async pipelines and still describe the design as non-blocking.
  4. Prefer the version of ExecutorService, Future, and CompletableFuture that makes behavior less predictable as long as the code compiles.

Hint

Look for the option that protects correctness instead of hiding the problem.

Answer and rationale

Correct answer: C. Do not block casually inside async pipelines and still describe the design as non-blocking.

Do not block casually inside async pipelines and still describe the design as non-blocking. This is a common failure mode in real Java code and a frequent interview follow-up.

Track: Java