Thread-safe collections .NET
Ce qui est la norme aujourd'hui, quand on a besoin d'un "thread-safe" de la collection (par exemple Set).
Puis-je synchroniser moi-même, ou est-il par nature un "thread-safe" de la collection?
- Coffre-fort pour quelles opérations?
- vous le savez, l'ajout, la lecture etc... quelque chose comme une java simultanées de collections.
- vous devez mettre à jour votre question avec cette information. Cela fait une grande différence et que vous voulez les collections qui sont thread-safe pour tout, par rapport à une collection qui est, par exemple, thread-safe pour insérer seulement.
- comment est-ce que changer la réponse?
- si la réponse est la .NET 4.0 collections, elle n'est pas. Mais, en général, les différentes collections peuvent avoir différents thread-la sécurité et le parallélisme des caractéristiques. Par exemple, une file d'attente particulière pourrait être sûr de plusieurs lecteurs, mais seulement un écrivain.
Vous devez vous connecter pour publier un commentaire.
L' .NET Framework 4.0 introduit plusieurs thread-safe collections dans le Système.Les Collections.Simultanée De L'Espace De Noms:
D'autres collections .NET Framework ne sont pas thread-safe par défaut et doivent être verrouillées pour chaque opération:
Pré .net 4.0, la plupart des collections .Net ne sont pas thread-safe. Vous aurez à faire un peu de travail vous-même pour gérer la synchronisation: http://msdn.microsoft.com/en-us/library/573ths2x.aspx
Citation de l'article:
Synchronisation De La Racine De La Propriété
Instruction Lock
Dans .net 4.0 a introduit le Système.Les Collections.Simultanées espace de noms
Le Blocage De La Collection
Simultanées Sac
Concurrente De La File D'Attente
Simultanées Dictionnaire
Abordables Outil De Partitionnement
Outil de partitionnement
Partitionnement De T
.NET 4 fournit un ensemble de thread-safe collections de sous Système.Les Collections.Simultanées
En plus de la très classes utiles dans
System.Collections.Concurrent
, une technique standard dans la plupart des-lire-rarement-des scénarios de changement (ou si il y a cependant fréquent, mais non des écritures simultanées) qui est également applicable .Net est appelé Copy-on-write.Il a un couple de propriétés qui sont souhaitables dans de très simultané de programmes:
Limitation: Si il y a des écritures simultanées, des modifications peuvent être retentée, de sorte que le plus écritures simultanées obtenir, moins efficace, il devient. (C'est l'accès concurrentiel optimiste au travail)
Modifier Scott Chamberlain commentaire m'a rappelé qu'il y a une autre limitation: Si vos structures de données sont énormes, et les modifications se produisent souvent, un copier-tout-sur-écriture peut être prohibitif en termes de consommation de la mémoire et le CPU coût de la reproduction.