What is the primary advantage of using a CompletableFuture in Java?
CompletableFuture
It allows for non-blocking asynchronous task execution
It simplifies error handling in multithreading
It ensures thread safety without explicit locks
It automatically cancels long-running tasks