gpt4 book ai didi

java - 沙盒静态字段

转载 作者:行者123 更新时间:2023-12-02 08:07:08 25 4
gpt4 key购买 nike

我必须使用一个数字库,其代码是从 FORTRAN 生成的。生成的代码非常快,但它由仅具有静态方法的类组成。问题是这些方法有副作用(它们更改静态字段),因此与多线程不兼容。

有办法将它们沙箱化吗? (每个线程看到不同的类)

PS:更改库不是一个选择,因为生成的代码对人类不友好。 (事实上​​原始的FORTRAN代码也不太人性化)

最佳答案

我认为您可以简单地从库源中删除方法调用之前的所有 static 关键字和类名(如果生成的代码使用类名限定静态方法)。这两个操作都是简单的查找和替换,因此您不需要了解生成的代码。

然后,每个线程都可以拥有自己的库类实例。

如果这不是一个选项,也许您可​​以使用Thread.setContextClassLoader()为每个线程提供自己的自定义类加载器。每个ClassLoader都有单独的类定义,这样也许你就可以达到你想要的结果。

关于java - 沙盒静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993199/

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