J'espère que l'idée vous plaira, il s'agit de la fractale de Mandelbrot. Un grand nombre d'applets la dessinent mais l'originalité repose ici sur la gestion de plusieurs threads.
Au lieu d'utiliser un pool de threads j'ai préféré créer un objet FractalPainter implémenté par :
- les ChiefFractalPainter qui ne dessinent rien du tout mais délèguent à deux autres FractalWorker
- les WorkerFractalPainter qui dessinent une partie de la fractale
Lorsque l'on demande à un ChiefFractalPainter de dessiner une partie de fractale, il coupe cette partie en 2 et la donne chacune des parties à ses 2 workers attitrés, en fin de compte, il ne fait pas grand chose. (Je me suis inspiré de la hiérarchie habituelle dans un bureau, lol ;)
Si on choisit de dessiner en //, chaque WorkerFractalPainter se créera un petit thread à lui pour faire le boulot.