Iremia, R.Courdier
03/27/99 2
© Rémy Courdier 1996-2003 - le multitache Java - Version du cours 2.8 3
Threads
Utilité des processus légers
Creer des processus séparés,
“indépendants”
Accéder à la programmation
concurrente (parallèle)
implémenter des mécanismes de
synchronisation et de rendez-vous
gérer des interfaces utilisateurs
sophistiquées
créer des serveurs de réseaux
gestion de graphiques animés
Masquer la complexité des
mécanismes de “time slicing”
2 techniques
Implémenter l’interface Runnable
class x implements Runnable
{
//corps de classe
}
hériter de la classe Thread
class x extends Thread
{
//corps de classe
}
© Rémy Courdier 1996-2003 - le multitache Java - Version du cours 2.8 4
Threads
implémentation de Runnable
L’interface Runnable
Une seule fonction run() :
invoquée par la méthode start()
de la classe Thread
Ne permet la création que
d’une Thread pour une
instances de classe donnée
La classe qui implémente
Runnable n’a pas de
possibilités de multi-processing
Il faut qu’elle gere la création d’une
instance de Thread qui prend en
argument un objet “Runnable”
Il faut ensuite appeler start()
sur le thread
le start() appelera alors run()
/** Fichier Runnable.java */
...
public class T1 extends applet
implements Runnable {
Thread selfThread = null;
...
public void run() {
while(true){...
try {
Thread.currentThread().sleep(50);
} catch(Exception e) {}
...}
}
...
public void declencheThread() {
if (selfThread == null) {
selfThread = new Thread(T1.this);
selfThread.start();
}
}
}