在以下代码中, 我正在创建groovy实例并将其缓存在hashmap中。
GroovyClassLoader loader = new GroovyClassLoader(this.getClass().getClassLoader());
Class groovyClass = loader.parseClass(groovyMap.get(key), key + ".groovy");
groovyObject = (GroovyObject) groovyClass.newInstance();
instanceMap.put(key, groovyObject);
当我从多线程模式的缓存映射中获取实例并执行
时 groovtIObject.invokeMethod("methodname",args);
该方法是否是线程安全的,就像在java中一样。我没有在groovy脚本中共享任何实例级变量。
感谢您的投入。
答案 0 :(得分:1)
当Groovy生成字节码并实际生成一个方法时,它将具有与Java方法大致相同的线程安全级别。请注意,默认情况下Binding不是真正的线程安全。但是既然你说过,你排除了实例级变量,那就应该没问题了。