Demo Multithread avec Executor

Mettez en oeuvre le framework Executor, disponible depuis Java 5. Comprenez les interfaces Executor, ExecutorService, Future. Maîtrisez l’utilisation de la classe Executors pour créer différent types de Pool de Thread.

Introduction

Objectifs interface Executor :

L’objectif est de découpler :

1) soumission de la tache

2) la création du thread associé à cette tache

Objectif interface ExecutorService :

Gérer le cycle de vie pour Executor : 3 phases

1) initialisation : création de threads et démarrage

2) service (execute la tache)

3) destruction (shutdown + n’accepter plus de tache)

Simplifier travail du Développeur

1) Créer un Executor

2) créer une tache

3) soumettre la tache à l’Exécutor

4) Arréter l’Executor

Interfaces et classes clés

- Interface Executor

- Interface ExecutorService

- Classe Executors

- Interface Future

RECOMMANDATIONS

1) Pour des taches asynchrones courtes, sans limites —> Executors.newCachedThreadPool()

2) Pour imposer un nombre fixe de taches Max à un moment donné (le reste dans une Queue) —> Executors.newFixedThreadPool()

3) Pour Executer tache après tache / Jamais deux à la fois (Exemple : Swing Gui EventManager)

Création d’une Tache

Cas 1 : une tache qui ne retourne rien —> créer une classe qui implémente interface Runnable

Cas 2 : une tache qui retourne quelque chose —> créer une classe qui implémente interface Callable

PNG - 7.6 ko
tutoriel-thread-executor-fixedthreadpool-2

- 

PNG - 20.9 ko
tutoriel-thread-executor-fixedthreadpool-3

Classe Principale

PNG - 8.3 ko
tutoriel-thread-executor-fixedthreadpool-1

- 

PNG - 12.8 ko
tutoriel-thread-executor-fixedthreadpool-4

- 

PNG - 16.5 ko
tutoriel-thread-executor-fixedthreadpool-5

- 

PNG - 16.9 ko
tutoriel-thread-executor-fixedthreadpool-6

- 

PNG - 455 octets
tutoriel-thread-executor-fixedthreadpool-7

- 

PNG - 14.3 ko
tutoriel-thread-executor-fixedthreadpool-8

- 

PNG - 21.7 ko
tutoriel-thread-executor-fixedthreadpool-9

- 

PNG - 17.4 ko
tutoriel-thread-executor-fixedthreadpool-10

- 

PNG - 20.8 ko
tutoriel-thread-executor-fixedthreadpool-11

- 

PNG - 17.7 ko
tutoriel-thread-executor-fixedthreadpool-12

DEMO

Zip - 6.3 ko
demoThreadExecutor

Aller plus loin

PNG - 19.5 ko
tutoriel-thread-executor-callable-1

- 

PNG - 37.3 ko
tutoriel-thread-executor-callable-2

- 

PNG - 6.8 ko
tutoriel-thread-executor-callable-3

FINAL

Zip - 10.5 ko
demoThreadExecutor-v2