RÉVISION JAVA
Comprendre Thread et Runnable
Résumé clair pour débutant : définition, différence, exemples simples, méthodes utiles et points à ne
pas confondre.
Idée clé Différence
Erreur classique
Un thread exécute une Runnable = quoi faire
run() n’est pas start().
tâche. Thread = qui exécute
1. L’idée générale
Un thread est un fil d’exécution dans un programme. Un programme peut donc faire plusieurs tâches :
afficher une interface, télécharger un fichier, ou lancer un calcul. Quand plusieurs threads existent dans un
même programme, on parle de multithreading.
2. Pourquoi utiliser les threads ?
• faire plusieurs tâches dans le même programme
• éviter que l’application se bloque
• garder l’interface plus fluide
3. C’est quoi `Thread` ?
`Thread` est une classe Java. Elle représente le mécanisme d’exécution du thread.
Exemple simple :
class MonThread extends Thread {
public void run() {
[Link]("Le thread travaille");
}
}
MonThread t = new MonThread();
[Link]();
À comprendre : `run()` contient le travail, et `start()` démarre réellement le thread.
4. C’est quoi `Runnable` ?
`Runnable` est une interface. Elle sert à décrire la tâche que le thread devra exécuter.
Thread & Runnable - Java - Page 1
class MaTache implements Runnable {
public void run() {
[Link]("La tâche s'exécute");
}
}
MaTache tache = new MaTache();
Thread t = new Thread(tache);
[Link]();
Thread Runnable
Représente le thread lui-même. Il sert surtout à Décrit seulement la tâche à faire. Il sert à
lancer l’exécution. séparer le travail du mécanisme d’exécution.
5. Pourquoi préfère-t-on souvent `Runnable` ?
Raison Explication simple
Code plus propre On sépare la tâche à faire du thread qui l’exécute.
Plus flexible La même tâche peut être utilisée par plusieurs threads.
Une classe Java ne peut hériter que d’une seule classe. Avec
Héritage possible
`Runnable`, elle peut encore hériter d’une autre.
Formule à retenir
Runnable = quoi faire
Thread = qui exécute
Thread & Runnable - Java - Page 2
6. `run()` et `start()` : ne pas les confondre
Méthode Ce qu’elle fait
Contient le code du travail. Si on l’appelle directement, cela reste un
run()
simple appel de méthode.
Démarre réellement un nouveau thread, puis Java appelle `run()`
start()
automatiquement.
7. Exemple pour bien voir la différence
Le contenu de `run()` peut être le même avec `Thread` ou `Runnable`. Ce qui change surtout, c’est la
façon d’organiser le code.
Avec Thread Avec Runnable
La classe hérite de `Thread`, puis redéfinit La classe implémente `Runnable`, puis on
`run()`. C’est simple pour débuter. passe l’objet à `new Thread(...)`. C’est souvent
la solution recommandée.
8. États simples d’un thread
État Signification
runnable Le thread est prêt à s’exécuter.
running Le thread est en cours d’exécution.
waiting Le thread attend pendant un moment.
9. Méthodes utiles à connaître
Méthode Rôle
sleep(ms) Met le thread en pause pendant un certain temps.
yield() Suggère de laisser la main à un autre thread.
join() Attend la fin d’un autre thread.
10. Ce qu’il faut surtout retenir
• Un thread exécute une tâche dans le programme.
• `Runnable` décrit la tâche.
• `Thread` lance l’exécution.
• `run()` contient le travail.
Thread & Runnable - Java - Page 3
• `start()` démarre réellement le thread.
• On préfère souvent `Runnable` car c’est plus propre et plus flexible.
Mini fiche mémoire
Thread = exécution
Runnable = tâche
run() = code
start() = démarrage réel
sleep() = pause
yield() = cède la main
join() = attend la fin
Thread & Runnable - Java - Page 4