multithreading - 使用多线程时无法初始化 global.run
问题描述
我正在使用 scala 2.12.2 并正在导入一个包 scala.tools.nsc.Global。当使用单个线程或多个按顺序工作的线程时,我有以下代码可以正常工作。但是,当我有多个线程并尝试同时执行这段代码时,我得到一个空异常。你能帮我解决这个问题吗?
val compiler = new global.Run
ClassloaderCache.setCompiledFile(compiler.compileSources(sourceFiles))
在深入调试时,我了解代码中断 Definitions.scala 并在下面的方法中执行 ObjectClass.initialize 行。
// documented in JavaUniverse.init
def init() {
if (isInitialized) return
ObjectClass.initialize
ScalaPackageClass.initialize
symbolsNotPresentInBytecode
NoSymbol
isInitialized = true
} //init