Hallo,
ich hätte eine Frage bezüglich Threadsicherheit im Allgemeinen, bezügliche .NET 4.0 und auch speziell im Dictonary.
zunächst zum Dictonary:
--------------------------
In der MSDN-Library fand sich folgendes zu Threadsicherheit für das generische Dictronary<T1,T2>:
Zitat: |
Öffentliche statische (Shared in Visual Basic) Member dieses Typs sind threadsicher.Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet. |
Also irgendwie habe ich es nicht so richtig verstanden, wie das mit dem statischen Member gemeint ist oder ich kann mir einfach den Grund für die threadsicherheit nicht vorstellen.
Ich habe folgendes Member statisch in einem Singelton:
C#-Quelltext
1: 2:
| private static Dictionary<string, BlockingQueue<Something>> mDicBlockedQeueues = mQueueBlockedSomething = new Dictionary<string, BlockingQueue<Something>>(); |
Dies heist für mich nun, dass die Threadsicherheit für mDicBlockedQueues gewährleistet ist oder?
Wieso, wenn ich fragen darf? ...,weil es kann doch nun immernoch sein, dass auf dieser KLasse mehrere Threads unterwegs sind und diese nach belieben das Dictonary füllen leeren und in der Zwischenzeit anderere Threads Anzahl abfragen und so weiter. Für mich nicht threadsicher. Oder ist hier eine Besonderheit, die ich außer Acht gelassen habe?
Allgemein:
----------
Diesen Eintrag in der MSDN-Lib habe ich schon mehrmals bei anderen KLassen gefunden und hier liegt dann wohl, je nach Verwendung, die Threadsicherheit in der Verantwortung des Programierers. Gibt es eine Übersicht besonders erwähnenswerteter Klassen, welche sehr behilflich sind für Threadsicherheit? vielleicht auch im Bezug auf die verschiedenen .Net-versionen?
.Net 4.0:
--------------
Ich hatte bereits mal gelesen, dass in .NET 4.0 einige Erweiterungen zum Thema THreading hinzugefügt wurden und viel Arbeit abgenommen wurde. Habt ihr vieleicht irgendwelche tollen seiten die einem 3.5 u. 4.0 gegenüberstellen oder generell die Vorteile und Neuerungen im Bezug auf Threading in 4.0 aufzeigen?
Viele Grüße,
ironhaert