Bre*_*sen 5 javascript java scriptengine nashorn
我正在使用Java 8.我不是java专家(10年前从未上过java)
我创建了一个ScriptEngine实例(Nashorn,如果重要的话).我用它来评估几个javascript文件.
这个脚本在它自己的小javascript世界中非常开心.我喜欢它.
我还运行了一个File System WatchService,以防我的一些java脚本被修改.当它们被修改后,我创建一个新的ScriptEngine,并使用新的ScriptEngine对象评估新版本的javascript文件.
我的问题是,一旦我创建了新的scriptEngine,我就不能"杀死"旧脚本.旧脚本继续无限期运行.
我真的想释放旧scriptEngine对象使用的资源.我希望它停止做它所做的事情(因为它可能与新实例冲突,如果他们都尝试做同样的事情).
那么......我如何完全消除旧的ScriptEngine,包括它内部产生的任何线程?
小智 0
好的,线程泄漏的老问题。你有线程的句柄吗?是否有东西继承Thread?好的,然后是这样的:
private void stopThread(Thread thread) {
final Thread moribund = thread;
if (moribund != null) {
thread = null;
moribund.interrupt();
}
}
Run Code Online (Sandbox Code Playgroud)
也许有帮助。
| 归档时间: |
|
| 查看次数: |
832 次 |
| 最近记录: |