Groovy - 对象重用。

时间:2014-07-12 02:08:49

标签: java multithreading groovy

在以下代码中, 我正在创建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脚本中共享任何实例级变量。

感谢您的投入。

1 个答案:

答案 0 :(得分:1)

当Groovy生成字节码并实际生成一个方法时,它将具有与Java方法大致相同的线程安全级别。请注意,默认情况下Binding不是真正的线程安全。但是既然你说过,你排除了实例级变量,那就应该没问题了。