重用Groovy CompilerConfiguration对象

时间:2012-07-13 15:00:51

标签: groovy internals

我有一些代码可以创建一个Groovy CompilerConfiguration,其中包含一些使用ImportCustomizer添加的隐式导入。我想知道在多个GroovyClassLoaders或GroovyShells中重用相同的CompilerConfiguration对象是否安全。我没有看到GroovyClassLoader或GroovyShell中的任何代码改变了传入的CompilerConfiguration,所以它可能是安全的。

1 个答案:

答案 0 :(得分:1)

只要您坚持使用ImportCustomizer,它可能是安全的,但编译定制器和编译器配置都不是设计为线程安全的,因此使用不同的配置对象可能更好。对于编译过程中的任何类,这通常都是正确的:它不是线程安全的。

我可以轻松想象您创建CompilerConfiguration,将其传递给多个GroovyShell实例并在不同线程中添加定制程序的情况。

所以我会说,除非你有充分的理由分享相同的配置(并且我没有真正看到一个:)),走安全的方式并使用不同的对象。