Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Communication entre processus - Threads
2
Plan Caractéristiques des protocoles de communication entre processus dans un système réparti Principes généraux communication par datagrammes Client-serveur Communication de groupe par flots (streams) construction de protocoles pour les patterns de communication client-serveur : requête-réponse groupe : même message est envoyé à plusieurs processus données représentation des objets dans les messages références à des objets distants
3
Création de threads
4
Thread.sleep(4000); t.join(); synchronized
Le thread courant s’arrête jusqu’à ce que t ait terminé synchronized
5
Énoncé synchronized C1 et c2 ne sont pas utilisés en même temps
Inutile de bloquer l’ensemble de l’objet
6
Création et gestion des threads
Interface Executor execute(Runnable command) (new Thread(r)).start(); === e.execute(r); Interface ExecutorService Runnable ou Callable Interface ScheduledExecutorService schedule(Callable<V> callable, long delay, TimeUnit unit) scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) initialDelay, initialDelay+period, then initialDelay + 2 * period, etc. scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) Delai fixe entre la fin de l’action courante et le début de l’action suivante
7
Threads pools New threads are created using a ThreadFactory.
La création de threads demande beaucoup de ressources en mémoire On ne peut pas se permettre de lancer un thread par requête http sans réfléchir public class ThreadPoolExecutor factory methods Executors.newCachedThreadPool() unbounded thread pool, with automatic thread reclamation, Executors.newFixedThreadPool(int) fixed size thread pool Executors.newSingleThreadExecutor() single background thread New threads are created using a ThreadFactory. If not otherwise specified, a Executors.defaultThreadFactory() New tasks submitted in method execute(java.lang.Runnable) will be rejected when when the Executor has been shut down, when the Executor uses finite bounds for both maximum threads and work queue capacity, and is saturated
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.