Programmation Orientée Objet – Java
Bertrand Estellon
Département Informatique et Interactions
Aix-Marseille Université
21 septembre 2016
Bertrand Estellon (DII – AMU) Programmation Orientée Objet – Java 21 septembre 2016 1 / 171
Java Multitâche
Java et le multitâche
Un programme peut lancer plusieurs threads
Les threads lancés par un programme s’éxecutent en parallèle
Si l’ordinateur n’a pas assez de processeur pour exécuter tous les
threads en parallèle, le système d’exploitation va simuler le multitâche
en changeant régulièrement le thread en cours d’exécution
Tous les threads partagent le même espace mémoire
En Java, l’interface Runnable et la classe Thread permettent de
créer des threads
Bertrand Estellon (DII – AMU) Programmation Orientée Objet – Java 21 septembre 2016 144 / 171
Java Multitâche
L’interface Runnable
L’interface Runnable contient la méthode void run()
public class Counter implements Runnable {
public void run() {
int counter = 0;
while (counter < 100) {
System.out.print(counter+" ");
counter++;
}
}
}
Bertrand Estellon (DII – AMU) Programmation Orientée Objet – Java 21 septembre 2016 145 / 171
Java Multitâche
La classe Thread
Chaque instance de cette classe correspond à un thread
Elle implémente l’interface Runnable
Quelques méthodes non-statiques de la classe Thread :
Thread() : constructeur par défaut
Thread(Runnable target) : constructeur avec un Runnable
void start() : démarre le thread
void join() : attend que le thread meure
void interrupt() : interrompt le thread
boolean isAlive() : est-ce que le thread est en vie ?
boolean isInterrupted() : est-ce que le thread est interrompu ?
boolean isDaemon() : est-ce que le thread est un démon ?
Bertrand Estellon (DII – AMU) Programmation Orientée Objet – Java 21 septembre 2016 146 / 171
Java Multitâche
Lancement d’un thread
Première méthode :
public class Counter implements Runnable {
public void run() {
int counter = 0;
while (counter < 10) {
System.out.print(counter+" "); counter++;
}
}
}
public class Main {
public static void main(String[] args) {
Thread thread1 =new Thread(new Counter()); thread1.start();
Thread thread2 =new Thread(new Counter()); thread2.start();
}
}
Sortie :
00112233445566778899
Bertrand Estellon (DII – AMU) Programmation Orientée Objet – Java 21 septembre 2016 147 / 171
1 / 18 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 !