Cours 4- Créer des animations : la classe Thread et l'interface Runnable- Quelques composants supplémentaires : le choix dans une liste JComboBox et JListF. Gayral 1zyyyyyzRappel : multi-tâchesmulti-tâches : exécution de plusieurs processus simultanément (Windows NT, Unix...). Un processus est un programme en c ours d'exécution. L’ordonnanceur distribue le temps CPU entre les p rocessusUn processus peut être dans différents états. En exécution (running) : a le processeurPrêt : le processus est prêt à s'exécuter, mais n'a pas le processeur (occupé par un autre processus en exécution)BloquéF. Gayral 2états d’un processus et transitionsThread passe de l’état en exécution à l’état bloqué :- S'il reçoit l'ordre de dormir - s’il a besoin d’une ressource qui n’est pas disponibleThread passe de l’état bloqué à l’état Prêt :- Si son temps de sommeil est épuisé- Si la ressource qu’il attendait s’est libéréeF. Gayral 3yzzyyRappel : multi-threadsUn thread ("processus léger") est un processus à l'intérieur d 'un processus. multi-threading : exécution à l’intérieur d’un processus de plusieurs sous-tâches (exécution concurrente de threads) Un processus peut p osséder plusieurs threads. Le s ressources allouées à un processus (temps processeur, mémoire) sont p artagées entre les threads qui le composent. Un processus possède au moins un thread (qui exécute le programme principal, habituellement la fonction main()). F. Gayral ...
programme principal, habituellement la fonctionmain()).
F. Gayral
processus. multi-threading: exécution à l’intérieur d’un processus de plusieurs sous-tâches (exécution concurrente de threads)
z z
y
y y mémoire) sont partagées entre les threads qui le composent.
Rappel : multi-threads
leeutécexiquaumèdeposssusda(hteruniosn
propre espace d’adressage et doivent, pour communiquer, utiliser des moyens de communication specifiques (tubes..) yLes threads issus d’un même processus partagent la même zone mémoire (segments de code et de données), ce qui rend très facile (et périlleux !) la communication entre threads.
threads, chacun d’eux exécutant une fonction précise
z
y
clients en créant un thread par client F. Gayral
concurrente de ces threads Exemples
y page laisse la main à l'utilisateur
erdnopérdsedàveersUnteupurixnosedemandesdeconne
etncéseislicationel’app
yle thread dédié au garbage
y
z
z
d ’exécuter une tâche longue et consommatrice de temps ou une tâche répétitive(Exemple : animation, gros calculs, attente de connexion, entrée/sortie (chargement d'images))
ÞCréer des threads chargés de ces tâches plutôt que d ’occuper le thread principal à ces tâches F. Gayral
thread principal, celui qui exécute…
z
Intérêt des threads pour une application graphique