【发布时间】:2014-01-09 23:39:54
【问题描述】:
我正在使用 JSR223 ScriptEngine (JAV8),它本身不是线程安全的。由于我需要多个线程才能访问 ScriptEngine,因此每个 ScriptEngine 都属于一个 EngineContext 对象。 这些 EngineContexts 再次具有一个 ReentrantLock,各个线程在访问 ScriptEngine 之前获取它。
我遇到的问题是线程成功获取了锁,但是当两个线程调用它时,有时我仍然会遇到 JVM 崩溃(著名的 SIGSEGV (0xb))。
作为概述,这里是一些锁定过程的伪代码
Thread needs the ScriptEngine
Thread waits and acquires lock
Thread uses the ScriptEngine (Methods: eval, put)
Thread releases the lock
Thread does something else
我真的不确定,这里的问题是什么。
【问题讨论】:
标签: java multithreading v8 scriptengine jsr223