I – Threads
Références bibliographiques
–The Java Language Specification, J. Gosling, B. Joy et G. Steele [GJS96],
–Java Threads, S. Oaks et J. Wong [OW97],
–Concurrent Programming in Java. Design Principles and Patterns, D. Lea
[Lea97].
I.1 Modèle de threads de Java
1.1 Threads et processus
– Le multi-tâches de threads occasionne bien moins de surcharge que le multi-
tâches de processus
–Processus :
– Un ensemble de ressources ; par ex. sous UNIX, segment de code, de don-
nées utilisateur, de données systèmes (répertoire de travail, descripteurs
de fichiers, identificateurs de l’utilisateur ayant lancé le processus, du
groupe dont il fait partie, infos. sur l’emplacment des données en mé-
moire, . . . )
– Une unité d’exécution (avec, par ex. sous UNIX, des informations néces-
saires à l’ordonnanceur, la valeur des registres, le compteur d’instructions,
la pile d’exécution, des informations relatives aux signaux)
–Thread : on ne retient que l’aspect d’unité d’exécution.
– Contrairement aux processus, les threads sont légères :
– elles partagent le même espace d’adressage,
– elles existent au sein du même processus (lourd),
– la communication inter-thread occasionne peu de surcharge,
– le passage contextuel (context switching) d’une thread à une autre est
peu coûteux.
1