Nashorn(JSR 223)和预编译的Java脚本

Nashorn(JSR 223)和预编译的Java脚本,第1张

Nashorn(JSR 223)和预编译的Java脚本

这是由JSR-223设计的;

eval(String)
后面真的没有代码缓存。嗯,从 理论上讲
可以,但是它在开发人员想要的方面体现了很多猜测(而且所有猜测在某些时候注定是错误的)。

您应该做的是评估一下您的情况

Invocable
,保持不动,然后反复使用。

这样做时,请注意Nashorn不提供线程安全性(Javascript没有线程概念,所以Nashorn故意不是线程安全的,以便在语言语义不强制要求时不必支付同步成本)。因此,

Invocable
就基础脚本中全局变量的状态而言,从多个线程使用您创建的对象并不安全。(同时运行不与脚本的全局状态交互的函数就可以了。)

如果您需要在线程之间共享它, 并且 函数依赖于全局状态, 并且
全局状态可以更改,那么您需要为此添加自己的支架(同步,资源池或其他目前流行的方式)以此目的)。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5429795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存