Thread-sichere Funktionen dürfen im Zusammenhang mit Multithreading uneingeschränkt benutzt werden. Es müssen also keine Maßnahmen zur Thread-Synchronisation getroffen werden. Einfache Beispiele für thread-sichere Funktionen sind mathematische Funktionen.
Bei der Implementierung sollte stets abgewogen werden, ob es sinnvoll ist, eine Klasse thread-sicher auszulegen. Wenn dies notwendig erscheint und mit wenig Aufwand möglich ist, sollte eine Klasse thread-sicher umgesetzt werden.
Ob eine Klasse thread-sicher ist oder nicht, ist nicht unbedingt ein Qualitätsmerkmal. Wichtig ist lediglich die Dokumentation darüber, ob eine Klasse thread-sicher ist. Sollte dies aus der Dokumentation nicht hervorgehen, ist es besser davon auszugehen, dass eine Klasse oder eine Funktion nicht thread-sicher ist.
Nicht jede Klasse kann vollständig Thread-sicher realisiert werden. Grenzen ergeben sich meist im Zusammenhang mit Routinen zur Initialisierung und Freigabe einer Klasse. Solche wichtigen Funktionen sollten zur selben Zeit immer nur von einem Thread aufgerufen werden.
Es gibt auch Klassen, bei denen eine thread-sichere Implementierung Overkill wäre, da diese Klassen nicht ohne externe Synchronisation sinnvoll genutzt werden können. Die Klasse StringBuilder von .NET oder Java repräsentiert einen solchen Fall.
Schreiben Sie einen Kommentar
Sie müssen angemeldet sein, um einen Kommentar abzugeben.