java - Groovy - 对象重用。

标签 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 脚本中共享任何实例级变量。

感谢您的意见。

最佳答案

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

关于java - Groovy - 对象重用。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24708943/

相关文章:

java - 序列化和反序列化

java - 在一个线程的 JDialog 中显示一个不确定的进度条,并同时在另一个线程中运行一个任务

android - Android SQLiteDatabase 线程安全吗?

java - Elasticsearch jar 下载不同的版本

java - 我如何将数组的值设置为我想通过命令调用的变量的名称(在java中)?

java - 如何在Java中以共享模式打开文件

Java多线程同步问题?

child 找到的Grails 1到n关系

groovy - 带接收器的 Kotlin 函数参数,从 Groovy 调用

grails - Groovy/Grails : How do I make my datePicker blank or null by default instead of showing today's date?