Les tâches et la synchronisation
en langage Java
Les threads, les verrous, les sémaphores
et les moniteurs en Java
et
les
moniteurs
en
Java
D’après les cours de D. Genthial et B. Caylux
Langage Java – Threads et synchronisation 1
Généralités
Ej tâh t lé
z
E
n
j
ava une
c
h
e es
t
un processus
ger :
Îil
p
arta
g
e l’es
p
ace mémoire de l’a
pp
lication
q
ui l’a
pg p pp q
lancé.
Î
il possède sa propre pile d
exécution.
Î
il
possède
sa
propre
pile
d exécution.
zEn Java, un processus léger peut être créé
par :
1. dérivation de la classe Thread.
2. implémentation de l’interface Runnable.
DttiffiilldS
z
D
ocumen
t
a
ti
on o
ffi
c
i
e
ll
e
d
e
S
un :
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Thread.html
Langage Java – Threads et synchronisation 2
Th d
Th
rea
d
zUn thread est constitué essentiellement d’une
méthode run
()
()
zCette méthode est appelée par la méthode
start()
start()
zUn Thread vit jusqu’à la fin de l’exécution de sa
méthode run.
ÎUn thread
eut être endormi
ar slee
p(
nb de ms
)
p( )
ÎUn thread peut passer son tour par yield()
Î
Un thread peut se mettre en attente par
wait()
Î
Un
thread
peut
se
mettre
en
attente
par
wait()
Langage Java – Threads et synchronisation 3
Création de Thread
p
ar s
p
écialisation
pp
de la classe Thread
Défi iti d th d
class MonThread extends Thread{
Défi
n
iti
on
d
u
th
rea
d
MonThread(. . .){ Constructeur
}
public void run(){
. . . Algorithme décrivant
le comportement du thread
le
comportement
du
thread
}
. . .
}
}
Démarrage du thread
MonThread mt = new MonThread ();
mt.start() // exécute la méthode run de mt
Langage Java – Threads et synchronisation 4
Création de Thread par spécialisation
de la classe Thread
El
z
E
xemp
l
e
class MaPremiereTache extends Thread {
public
MaPremiereTache() {
public
MaPremiereTache()
{
super();
}
}
public void run() {
System.out.println(“Bonjour le monde !”);
}
}
...
MaPremiereTache t = new MaPremiereTache ();
t.start(); // exécute la méthode run de t
Langage Java – Threads et synchronisation 5
1 / 45 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !