0% ont trouvé ce document utile (0 vote)
4 vues11 pages

Threads

Le document présente les concepts fondamentaux des threads en Java, soulignant que Java est un langage multithreads permettant l'exécution simultanée de plusieurs blocs de programme. Il décrit les deux méthodes de création de threads, les états d'un thread, ainsi que la gestion de la priorité et la synchronisation des threads pour accéder aux ressources partagées. La synchronisation est essentielle pour éviter les conflits lors de l'accès concurrent aux données partagées entre threads.

Transféré par

HAMZA RABIH
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues11 pages

Threads

Le document présente les concepts fondamentaux des threads en Java, soulignant que Java est un langage multithreads permettant l'exécution simultanée de plusieurs blocs de programme. Il décrit les deux méthodes de création de threads, les états d'un thread, ainsi que la gestion de la priorité et la synchronisation des threads pour accéder aux ressources partagées. La synchronisation est essentielle pour éviter les conflits lors de l'accès concurrent aux données partagées entre threads.

Transféré par

HAMZA RABIH
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecole Normale Supérieure de l'Enseignement Technique

(ENSET)

Les threads
en Java

Abdelmajid BOUSSELHAM

Email: bousselham@[Link]
Researchgate : [Link]
Google Scholar: [Link]
Scopus: [Link]
Linkedin: [Link]
Qu’est ce qu’un thread

• Java est un langage multithreads.


• Le multithreading est une fonctionnalité Java qui permet l'exécution simultanée de plusieurs blocs d'un
programme.
• Dans ce cas, chaque bloc est appelé Thread (tâche ou fil).
Création et démarrage d’un thread

• En java, il existe, deux techniques pour créer un thread:

▪ Soit vous dérivez votre thread de la classe [Link].

▪ Soit vous implémentez l’interface [Link].


Créer un thread en dérivant de la classe Thread

• Exemple :
Créer un thread en implémentant l’interface Runnable

• Exemple :
Quelle technique choisir ?

Méthode Avantages Inconvénients


extends Threads Chaque thread a ses On ne peut plus hériter
données qui lui sont d’une autre classe.
propres.
Implements Runnalble L’héritage reste Les attributs de votre
possible. En effet, on classe sont partagés
peut implémenter pour tous les threads
autant d’interfaces que qui y sont basés. Dans
l’on souhaite. certains cas, il peut
s’avérer que cela soit
un atout.
L’état d’un thread
L’état d’un thread

• NEW - Le thread est créé mais pas encore démarré (appel à start()). RUNNABLE - Le thread est prêt à être
exécuté mais attend l'allocation du processeur. RUNNING - Le thread est en cours d'exécution sur le
processeur. BLOCKED - Le thread attend un verrou ou une ressource pour continuer. WAITING - Le thread
attend indéfiniment qu'un autre thread le notifie (wait()). TIMED_WAITING - Le thread attend pour une
durée limitée (sleep(), join(time)). TERMINATED - Le thread a terminé son exécution ou a été arrêté
Gestion de la priorité d’un thread.

• Dans l’exemple suivant nous avons donné le maximum de priorité pour le thread T2 et le minimum de
priorité pour le thread T1, du coup le thread T2 termine en premier.
Synchronisation de threads et accès aux ressources partagées.

• Lors ce que vous lancez une JVM (Machine Virtuelle Java), vous lancez un processus.
• Ce processus possède plusieurs threads et chacun d’entre eux partage le même espace mémoire.
• En effet, l’espace mémoire est propre au processus et non à un thread.
• Cette caractéristique est à la fois un atout et une contrainte.
• En effet , partager des données pour plusieurs threads est relativement simple.
• Par contre les choses peuvent se compliquer sérieusement si la ressource (les données) partagée est
accédée en modification.
• Il faut synchroniser les accès concurrents. Nous sommes certainement face à l’un des problèmes
informatiques les plus délicats à résoudre.
Synchronisation de threads et accès aux ressources partagées.

• Dans l’exemple suivant on synchronise la modification de l’attribut nb qui partagé entre les deux thread
crées :

Résultat:

Vous aimerez peut-être aussi