Article original en anglais sur http://www.theserverside.com/articles/article.tss?l=JavaOneDayFour_03
Je me suis permis de traduire en français un article à propos des prochaines fonctionnalités pour J2SE 1.5.
JSR-166 représente une amélioration majeur des capacités concurentielles de Java en introduisant le package java.util.concurrent, potentiellement inclus dans J2SE 1.5. Ce package se base sur le travail de Doug Lea dont le package a été adopté et utilisé de nombreuses fois, et inclus des utilitaires largement utilisés dans l’industrie.
Ce qui est fascinant à propos de ces librairies c’est qu’elles n’utilisent pas ou peu la synchronisation de Java. Au lieu de cela, la librairie inclue une partie de code natif afin d’utiliser les spécificités de chaque plateforme. Cela devrait conduire à une grande amélioration des capacités et des performances par rapport à l’utilisation de synchronized.
Exemples d’outils ou de class dans ce kit:
- Executors, un framework pour effectuer des invocations asynchrones. Essaye d’éliminer la nécessité de piloter nous-mêmes des Threads d’execution. Cela permettrait d’utiliser des Thread Pools, des taches annulables, des threads de shutdown…
- Différents nouveaux objets comme une PriorityQueue, une LinkedQueue rapide, thread-safe et non bloquante, une BlockingQueue (utilisé dans les patterns producteur/consomateur). Une ConcurrentHashMap est aussi inclue permettant de maniere propre et sûre des lectures et écritures concurentes, la majorité des lectures étant non-bloquantes.
- Une class TimeUnits pour des opérations dont la granularité serait les nanosecondes, en assumant que l’OS supportte lui-même ce niveau de timing
- Des objets ReadWrite locks permettant à plusieurs lecteurs d’acceder à une valeur mais n’authorisant qu’un seul écrivain (wa wa wa) et ce afin de remplacer les fameux synchronized block que nous voyons dans le code. C’est sans doute l’un des
ajouts les plus sympathiques mais qui à terme rendra obsolète des outils comme JProfiler…
Bref c’est un projet prometteur et qui devrait introduire une plus grande facilité (le mot d’ordre de Java One en 2003) ainsi qu’une architecture plus propre dans Java 1.5.