gpt4 book ai didi

具有多线程和锁的 Java ScriptEngine

转载 作者:行者123 更新时间:2023-12-02 05:31:28 26 4
gpt4 key购买 nike

我使用的是 JSR223 ScriptEngine ( JAV8 ),它本身不是线程安全的。由于我需要多个线程才能访问 ScriptEngine,因此每个 ScriptEngine 都属于一个 EngineContext 对象。这些 EngineContext 再次具有一个 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

我真的不确定这里的问题是什么。

最佳答案

SIGSEGV 始终是由 native 代码中的错误引起的。假设您自己没有编写任何 native 代码,那么您要么滥用该库,要么触发库中的错误,要么触发 JVM 中的错误(按可能性降序排列......)。

如果没有您提供的更多详细信息(代码片段、崩溃日志),很难判断您的具体问题是什么。

关于具有多线程和锁的 Java ScriptEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com