gpt4 book ai didi

Javassist类可以与多个线程共享吗?

转载 作者:行者123 更新时间:2023-12-01 04:20:20 26 4
gpt4 key购买 nike

我可以在多个线程中共享 Javassist 类,以便在 Web 应用程序中获得更好的性能吗?我认为我可以使用 ConcurrentMapproxyClass 创建一个缓存,以避免在每个页面请求中创建。

我的代码是:

ProxyFactory factory = new ProxyFactory();
factory.setFilter(IGNORE_BRIDGE_AND_OBJECT_METHODS);
factory.setInterfaces(new Class[] { type });

Class<?> proxyClass = factory.createClass(); // can I cache here after class creation?

Object proxyInstance = ...; // objenesis creates new instance here
setHandler(proxyInstance, myCustomHandlerHere);

更新:我看到了 Javassist 代码,Javassist 还提供了缓存。

最佳答案

当然可以。 Javassist 编译的类是一流的类(即使只是很短的时间),因此最好在创建类后对其进行缓存,以节省反复重新编译它们的开销。另外,您不必为您的类发明不可能的名称,因为您只需重新编译相同的虚拟代码一次。

关于Javassist类可以与多个线程共享吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18979395/

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