2009-03-15 8 views
4

Eh bien j'écris en .net et j'ai une liste à sorcière je vais ajouter seulement l'élément ne jamais supprimer et c'est une liste liée je peux changer que si ce n'est pas le meilleur choix, mais il serait sûr de ne pas utiliser tout blocage dans ce cas quand je sais que cette liste ne sera jamais modifiée d'une autre manière mais que c'est ajouté à? (un verrou sera utilisé en essayant d'ajouter à la liste)?Linked List Sujet sécurisé?

Répondre

3

Non, ce n'est pas sûr. LinkedList n'est pas une classe thread-safe. Le seul scénario pris en charge multi-thread pour LinkedList est plusieurs lecteurs

http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx

+0

Eh bien c'est ce que j'essaie de dire désolé si je l'ai écrit un peu manquer de direction, de nombreux lecteurs et un seul écrivain ... serait-ce sûr, ou au moins un écrivain à la fois. – Peter

+0

@Petoj - la lecture ne serait pas sûre en même temps qu'un écrivain - même si l'écriture est limitée à un seul thread. –

6

Non; pour soutenir de nombreux lecteurs et un écrivain (commentaires à la réponse de Jared), vous pouvez regarder ReaderWriterLockSlim. L'auteur a besoin d'un accès exclusif. les lecteurs peuvent coopérer. C'est ce que fait ReaderWriterLockSlim. Il y a aussi ReaderWriterLock avant 3.5.

Vous devrez gérer entrée/sortie etc manuellement - idéalement via try/finally.