Dans un thread d'exécution, les instructions d'un programme sont exécutées séquentiellement dans l'ordre dans lequel elles étaient codées.
Le thread utilise une pile d'exécution (call stack) pour séquencer l'exécution des instructions du programme.
Il n'est pas possible dans un thread d'exécuter les instructions d'un programme en parallèle.
Le seul moyen pour rouler des programmes en parallèle est de créer de nouveaux threads.
Chaque thread aura sa propre pile d'exécution et s'occupera d'exécuter la tâche qui lui a été confiée.
En Java, chaque application, exécutée par la JVM, obtient un thread par défaut appelé le thread principal (the main thread).
Il faut distinguer deux choses différentes lorsqu'on parle des threads :
- le code à exécuter,
- et le thread (instance de la classe
Thread
) qui va exécuter ce code.
Java offre deux moyens pour définir un nouveau thread d'exécution :
- en étendant la classe
Thread
,
- ou en implémentant l'interface
Runnable
.
Dans les deux cas il faut fournir une implémentation de la méthode
run()
qui doit contenir le code à exécuter par le thread.
Il faut noter que la classe
Thread
implémente l'interface
Runnable
qui définie la méthode
run()
.