Bonjour à tous,

J'aurais deux questions à poser, j'espère être dans la bonne catégorie.

Je développe actuellement une application qui demande en local des transferts très rapides de données, d'une classe à une autre (threads de calcul) et de classes vers un GUI (mise à jour plusieurs fois par seconde de graphes avec JFreeChart et d'images).
J'aurais voulu avoir votre avis sur les types de variables à utiliser pour optimiser les performances, sachant que ces variables sont presque toujours partagées par au moins deux threads en même temps.

Les classes BufferedOutputStream et BufferedInputStream, ou bien l'accès à un ArrayList, HashMap,... partagé, ou encore une autre solution ?

Dans le cadre de cette appli j'aurais également besoin d'enregistrer des grandes quantités de données organisées dans un même fichier, qui seront amenées à être réutilisées comme source en entrée des blocs de calcul dont je parlais avant.
En terme de performances là aussi, je voulais avoir votre avis sur les méthodes à utiliser.

La sérialisation d'un objet contenant toutes les données, ou l'utilisation des API ZIP pour compresser les données, ou une autre solution ?

Merci!