Quelle est la différence entre ConcurrentHashMap et des Collections.synchronizedMap(Map)?

J'ai une Carte qui est d'être modifié par plusieurs threads simultanément.

Il semble y avoir trois différentes synchronisé Carte implémentations de l'API Java:

  • Hashtable
  • Collections.synchronizedMap(Map)
  • ConcurrentHashMap

De ce que je comprends, Hashtable est un vieux de la mise en œuvre (l'extension de l'obsolètes Dictionary classe), qui a été adapté plus tard, pour s'adapter à la Map interface. Alors qu'il est synchronisé, il semble avoir de graves les problèmes d'évolutivité et est déconseillé pour les nouveaux projets.

Mais ce que sur les deux autres? Quelles sont les différences entre les Cartes retournées par Collections.synchronizedMap(Map) et ConcurrentHashMaps? Ce qui correspond à une situation qui?

InformationsquelleAutor Henning | 2009-02-04