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