Je suis en train d'écrire une classe dans laquelle un ConcurrentHashMap
statique est utilisé (avec des opérations telles que get()
, put()
, clear()
, etc.) par plusieurs threads. Dans cette classe, j'ai également besoin de sérialiser le ConcurrentHashMap
dans un fichier et de le désérialiser à partir du fichier. Le problème est que le ConcurrentHashMap
peut être modifié pendant qu'il est sérialisé et, par conséquent, il peut ne pas être thread-safe.Une bonne façon de sérialisation ConcurrentHashMap dans un environnement multithread
Mes questions sont les suivantes:
ConcurrentHashMap
est thread-safe, est-il sûr qu'il est modifié pendant qu'il est sérialisé par plusieurs threads? (Je suppose que la réponse est non, mais besoin de confirmation)- Quelle est la meilleure pratique pour sérialiser
ConcurrentHashMap
dans plusieurs threads avec le risque d'une modification en même temps. Notez que la sécurité et la performance sont critiques pour mon application.
Wel, bloquer ou faire la queue. C'est un point mineur, puisque la plupart des utilisateurs de telles cartes auront besoin d'un accès synchrone, mais cela vaut la peine d'être mentionné :) –