{"id":212,"date":"2010-03-22T22:11:32","date_gmt":"2010-03-22T20:11:32","guid":{"rendered":"http:\/\/wenzlaff.de\/cgi-bin\/weblog_basic\/index.php?p=212"},"modified":"2021-11-22T17:17:02","modified_gmt":"2021-11-22T16:17:02","slug":"balking-sperrt-pattern","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=212","title":{"rendered":"Balking (sperrt) Pattern"},"content":{"rendered":"<p>Der Balking-Pattern kann verwendet werden, wenn nur ein Objekt eine Aktion starten darf, das in einem bestimmten Zustand ist. Alle anderen weiteren Aufrufe, werden solange ignoriert, bis die Aktion abgeschlossen wurde.<br \/>\nEin Beispiel zum ansteuern einer Schnittstelle<!--more--> die nur einmal ge\u00f6ffnet werden darf:<\/p>\n<p><code><br \/>\npublic class Schnittstelle {<\/p>\n<p>\tprivate boolean isOpen = false;<\/p>\n<p>\t\/**<br \/>\n\t * Diese Methode wird zum \u00f6ffnen der Schnittstelle aufgerufen.<br \/>\n\t *\/<br \/>\n\tpublic void openSchnittstelle() {<br \/>\n\t\t<strong>synchronized <\/strong>(this) {<br \/>\n\t\t\tif (isOpen) {<br \/>\n\t\t\t\treturn;<br \/>\n\t\t\t}<br \/>\n\t\t\tisOpen = true;<br \/>\n\t\t}<br \/>\n\t\t\/\/ Hier wird die Schnittstelle ge\u00f6ffnen ...<br \/>\n\t}<\/p>\n<p>\t\/**<br \/>\n\t * Diese Methode wird aufgerufen wenn die Schnittstelle ge\u00f6ffnet wurde.<br \/>\n\t *\/<br \/>\n\tvoid schnittstelleGeoeffnet() {<br \/>\n\t\tisOpen = false;<br \/>\n\t}<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Wichtig ist das <strong>synchronized<\/strong> es verhindert zwei Aufrufe zur gleichen zeit. Das hei\u00dft der eine Aufruf l\u00e4uft normal und der andere wird gesperrt (balking).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Balking-Pattern kann verwendet werden, wenn nur ein Objekt eine Aktion starten darf, das in einem bestimmten Zustand ist. Alle anderen weiteren Aufrufe, werden solange ignoriert, bis die Aktion abgeschlossen wurde. Ein Beispiel zum ansteuern einer Schnittstelle<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[111,166,179,184],"class_list":["post-212","post","type-post","status-publish","format-standard","hentry","category-java","tag-balking","tag-pattern","tag-sperrt","tag-synchronized"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=212"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/212\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}