Définition
Une thread (appelée aussi processus léger ou activité) est une suite d’instructions à l’intérieur d’un process.
Les programmes qui utilisent plusieurs threads sont dits multithreadés.
Syntaxe
Les threads peuvent être créés comme instance d’une classe dérivée de la classe Thread. Elles sont lancées par la méthode start(), qui demande à l’ordonanceur de thread de lancer la méthode run() de la thread. Cette méthode run() doit être implantée dans le programme.
Premier exemple
class DeuxThreadAsynchrones {
public static void main(String args[ ]) {
new UneThread(« la thread 1 »).start();
new UneThread(« la seconde thread »).start();
}
}
class UneThread extends Thread {
public UneThread(String str) {
super(str);
}
public void run() {
for (int i=0; i<10; i++) {
System.out.println(i+ » « +getName());
try {sleep((int)(Math.random()*10));}
catch (InterruptedException e){}
}
System.out.println(getName()+ » est finie »);
}
}
une exécution
% java DeuxThreadAsynchrones
0 la thread 1
0 la seconde thread
1 la thread 1
2 la thread 1
1 la seconde thread
3 la thread 1
4 la thread 1
5 la thread 1
6 la thread 1
7 la thread 1
2 la seconde thread
3 la seconde thread
4 la seconde thread
8 la thread 1
5 la seconde thread
9 la thread 1
6 la seconde thread
la thread 1 est finie
7 la seconde thread
8 la seconde thread
9 la seconde thread
la seconde thread est finie
Une classe « threadée »
C’est une classe qui implémente une thread.
Syntaxiquement on la construit :
– ou bien comme classe dérivée de la classe Thread. Par exemple
class MaClasseThread extends Thread {
•••
}
– ou bien comme implémentation de l’interface Runnable.
class MaClasseThread implements Runnable {
•••
}
Cette dernière solution est la seule possible pour une applet « threadée » puisque Java ne supporte pas l’héritage multiple :
public class MonAppletThread extends Applet implements
Runnable {
•••
}
Langage java syntaxe et exemples (143 KO) (Cours PDF)