Thread-safe de la mise en œuvre de Hachage Carte

D'abord, je vais décrire ce que je veux et puis je vais élaborer sur les possibilités que j'envisage. Je ne sais pas qui est le meilleur, donc je veux un peu d'aide.

J'ai un hachage carte sur laquelle je ne les opérations de lecture et écriture à partir d'un Servlet. Maintenant, depuis cette Servlet est sur Tomcat, j'ai besoin de la valeur de hachage de la carte pour être thread-safe. En gros, quand il est en cours d'écriture, rien d'autre à écrire pour elle et rien ne devrait être en mesure de le lire ainsi.

J'ai vu ConcurrentHashMap, mais il a remarqué sa méthode get n'est pas thread-safe. Ensuite, j'ai vu des serrures et quelque chose appelé synchronisé.

Je veux savoir qui est le moyen le plus fiable de le faire.

  • En quoi est ConcurrentHashMap.non thread-safe? Et quel est le niveau de granularité que vous recherchez? "Quand il est écrit" voulez-vous dire qu'il y aura plusieurs opérations put, ou est-il suffisant pour que chacun soit atomique?
  • Voir la doc de l'API, j'ai pensé qu'il n'est pas thread-safe. Il peut y avoir plusieurs opérations put pour le hachage de la carte si dire 3 les gens décident de faire la même opération de placement.
  • Le fait qu'il permet à des opérations simultanées ne fait-il pas thread-safe.
  • Aussi, si quelque chose est écrit dans la table de hachage de la carte, quelqu'un d'autre ne devrait pas être capable de le lire. Ne ConcurrentHashMap la garantie que?
  • Il ne garantit pas que, à partir de la javadoc: opérations d'Extraction (y compris les obtenir) ne sont généralement pas bloquer, donc peuvent se chevaucher avec les opérations de mise à jour (y compris les mettre et de l'enlever). Les récupérations de refléter les résultats de la dernière mise à jour des opérations de portefeuille au moment de leur apparition.
  • Je ne peux pas imaginer ce que je pensais et pourquoi j'ai besoin de cette condition spécifique (pas de lit ou écrit au cours d'une écriture) lorsque j'ai demandé à ce. Aussi, pour un devoir en classe. N'utilisez pas de grain grossier serrures, les enfants!

InformationsquelleAutor pratnala | 2013-08-01