I'm working with Groovy 1.7.2. There are methods which needs to be Synchronized , is there any groovier way of doing this or I have to follow same Java way of putting synchronized
keyword before method.
e.g : synchronized static def Map getMap(def fileName) { }
If you can upgrade to Groovy 1.7.3 you can use the Synchronized
AST transformation instead. You can use the annotation on instance and static methods. The annotation will create a lock variable in your class (or you can use an existing variable) and the code is synchronized on that lock variable.
The usage of a synchronized
block should be preferred over adding the keyword to the method. If you use the synchronized
keyword on the method you synchronize on this
which means that all other threads that want to access any of the methods in your class have to wait until the lock is free again.
import groovy.transform.Synchronized
class YourClass {
@Synchronized
static Map getMap(def fileName) {
...
}
}
Since Groovy 1.7.3 we have a new AST transformation: @Synchronized
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With