{"id":438,"date":"2016-05-14T20:25:14","date_gmt":"2016-05-14T18:25:14","guid":{"rendered":"http:\/\/www.steffen-liersch.de\/content\/de\/?p=438"},"modified":"2025-03-02T11:30:11","modified_gmt":"2025-03-02T10:30:11","slug":"thread-safe-functions","status":"publish","type":"post","link":"https:\/\/www.steffen-liersch.de\/content\/de\/2016\/05\/thread-safe-functions\/","title":{"rendered":"Thread-sichere Funktionen"},"content":{"rendered":"<p>Thread-sichere Funktionen d\u00fcrfen im Zusammenhang mit Multithreading uneingeschr\u00e4nkt benutzt werden. Es m\u00fcssen also keine Ma\u00dfnahmen zur Thread-Synchronisation getroffen werden.\u00a0Einfache Beispiele\u00a0f\u00fcr thread-sichere Funktionen sind mathematische Funktionen.<!--more--><\/p>\n<p>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\u00f6glich ist,\u00a0sollte eine Klasse thread-sicher umgesetzt\u00a0werden.<\/p>\n<p>Ob eine Klasse thread-sicher ist oder nicht, ist nicht unbedingt ein Qualit\u00e4tsmerkmal. Wichtig ist lediglich die Dokumentation dar\u00fcber,\u00a0ob 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.<\/p>\n<p>Nicht jede Klasse kann vollst\u00e4ndig Thread-sicher realisiert werden. Grenzen ergeben sich meist im Zusammenhang mit Routinen zur Initialisierung und Freigabe einer Klasse. Solche wichtigen\u00a0Funktionen sollten zur selben Zeit immer nur von einem Thread aufgerufen werden.<\/p>\n<p>Es gibt auch Klassen, bei denen eine thread-sichere Implementierung Overkill w\u00e4re, da diese Klassen nicht\u00a0ohne\u00a0externe Synchronisation sinnvoll genutzt werden k\u00f6nnen. Die\u00a0Klasse StringBuilder von .NET oder Java repr\u00e4sentiert einen solchen Fall.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Thread-sichere Funktionen d\u00fcrfen im Zusammenhang mit Multithreading uneingeschr\u00e4nkt benutzt werden. Es m\u00fcssen also keine Ma\u00dfnahmen zur Thread-Synchronisation getroffen werden.\u00a0Einfache Beispiele\u00a0f\u00fcr thread-sichere Funktionen sind mathematische Funktionen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[21,19,29,20],"class_list":["post-438","post","type-post","status-publish","format-standard","hentry","category-multi-threading","tag-net","tag-basics","tag-java","tag-multi-threading"],"_links":{"self":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/comments?post=438"}],"version-history":[{"count":5,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/438\/revisions"}],"predecessor-version":[{"id":495,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/posts\/438\/revisions\/495"}],"wp:attachment":[{"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/media?parent=438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/categories?post=438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.steffen-liersch.de\/content\/de\/wp-json\/wp\/v2\/tags?post=438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}