2016-04-01 3 views
1

Ich liebe die @Synchronized Annotation, die Groovy bietet. It is a safer option als das Schlüsselwort 'synchronized' für Java, da es eine lokale/private Sperrvariable und nicht das 'this'-Objekt verwendet. In Groovy können jedoch alle Regeln gebrochen werden. :)Hat Groovy eine Annotation für die Synchronisation auf Blockebene?

Ich weiß auch, es gibt Lombok, eine Java-Bibliothek, die provides the same feature.

Aber gibt es eine Möglichkeit, eine Annotation innerhalb einer Methode zu verwenden, so dass ein Teil des Methodencodes nicht synchronisiert ist (für bessere Leistung) und andere Teile (aus Notwendigkeit) sind?

Während ich diese Frage tippe ich mit einer Lösung auf meine eigene Frage nach oben kam:

  • Extract-Methode: eine neue Methode erstellen, den Codeblock bewegen, die Synchronisation in dieses Verfahren benötigt. Der ursprüngliche Code ruft die neue Methode auf. Die neue Methode hat @Synchronized.

Klingt das richtig? Irgendwelche besseren Ideen?

Antwort

2

Aber ist es eine Möglichkeit, eine Anmerkung innerhalb einer Methode zu verwenden, so dass einige des Codes des Verfahrens nicht synchronisiert ist (für bessere Leistung) und andere Teile sind (notgedrungen)?

Nein, gibt es nicht. Der Ansatz, den Sie als Option beschrieben haben, funktioniert.

Verwandte Themen