beginnerMultithreading Basics

What is the difference between Runnable and Callable interfaces in Java?

Runnable's run() method returns nothing and can't throw a checked exception; Callable's call() method returns a value of a generic type V and CAN throw a checked exception. Callable is submitted to an ExecutorService and returns a Future<V> that lets the caller retrieve the result (or exception) once the task completes.

Ready to master this question?

Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.

Sign in to generate a response

Next Step

Continue to What is a race condition and how is it different from a data race? →← Back to all Core Java questions