Sobes.tech
Junior — Middle

Quelle est la différence entre appeler la méthode run et utiliser la méthode start lors de l'utilisation de l'interface Runnable?

sobes.tech IA

Réponse de l'IA

La méthode run() de l'interface Runnable contient du code qui doit s'exécuter dans un thread séparé, mais appeler run() directement n'est qu'un appel de méthode dans le thread actuel, sans créer un nouveau thread.

La méthode start() de la classe Thread crée un nouveau thread et appelle sa méthode run() en interne. Donc, pour exécuter du code dans un nouveau thread, il faut créer un objet Thread, lui passer un Runnable et appeler start(), pas run() directement.

Exemple :

Runnable task = () -> System.out.println("Exécuté dans le thread " + Thread.currentThread().getName());

// Appel direct à run() — s'exécute dans le thread actuel
task.run();

// Exécution dans un nouveau thread
Thread thread = new Thread(task);
thread.start();