重用Groovy CompilerConfiguration对象

问题描述:

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

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

我可以很容易地想象一种情况,你创建一个CompilerConfiguration,将它传递给多个GroovyShell实例并在不同的线程中添加定制器。

所以我会说,除非你有一个很好的理由来共享相同的配置(我真的没有看到一个:)),去安全的方式,并使用不同的对象。

+0

那么,我没有对其初始创建后的CompilerConfiguration进行任何更改,但比对不起更安全。谢谢! – 2012-07-13 17:06:01