Vous aimez ce que vous lisez sur ce blog ?
Envie d'aller plus loin avec véritable formation d'expertise en Java ?
Venez suivre ma formation Masterclasse Expertise Java !

"Même un développeur experimenté a besoin de continuer à apprendre. Et dans cette formation... j'ai appris beaucoup !" - A.G., Java Champion

Sessions intra-entreprises sur demande : contact[at]mokatech.net.
Inscrivez-vous vite !

Développement d'un pool d'objets

Voici un article que j'ai écrit il y a deux ans, dans lequel je vous propose de suivre une démarche progressive pour développer un pool d'objets à la fois thread-safe et générique (au sens Java5). En partant d'une version basique (une simple liste), nous allons l'améliorer et ajouter les fonctionnalités une à une.

Même si l'accent est davantage mis sur la démarche que sur le résultat final, le pool pourra être adapté et utilisé sur des projets réels !

Cet article s'adresse à un public maîtrisant le langage Java. Une bonne connaissance de la version 5 est un plus. La compilation et l'exécution du code source nécessitent la machine virtuelle Java5.

Il arrive que, dans le cadre d'un projet, on ait besoin de pooler des ressources. L'exemple qui vient immédiatement à l'esprit concerne les connexions aux bases de données; mais le système peut se révéler intéressant pour toutes les ressources disponibles en nombre limité ou ayant un coût de création élevé.

Dans sa version la plus basique, un pool est un objet maintenant une simple liste d'instances pré-initialisées de la ressource concernée. Dans sa version la plus complexe, un pool peut proposer des options comme l'ajustement entre ressources pré-initialisées et ressources créées dynamiquement, la mise en place d'un temps maximal pour obtention de la ressource, ou encore une certaine généricité. Mais, par-dessus tout, le pool devra être thread-safe, afin de garantir que les applications y faisant appel ne tombent pas en interblocage (deadlock).

Dans cet article, nous allons développer un pool facilement adaptable à tout projet. La première version sera simple, puis nous y apporterons les améliorations indiquées plus haut, de manière à offrir une grande flexibilité d'utilisation. Pour terminer, nous étudierons comment Java5 nous permet de développer un pool réellement générique, et sous quelles conditions.

L'article et les sources sont placées en annexe.


Commentaires

1. Le vendredi 1 avril 2011, 15:03 par Gilles

Merci pour la clarté de cet article.
| ...en comprenant ce que l'on fait !
L'objectif est atteint :)

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.