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 l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!