java – 为什么使用Simple Least最近使用的缓存机制?

前端之家收集整理的这篇文章主要介绍了java – 为什么使用Simple Least最近使用的缓存机制?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我使用JProfiler检查Java微服务,同时用JMeter模拟并发用户.
使用JProfiler,我可以看到:

导航到方法find(),我意识到该方法有synchronized关键字

在我看来,这种方法导致线程被阻塞的问题.但为什么要使用它?我可以从微服务中禁用这个缓存机制吗?微服务是用Java编写的,它使用Spring,Spring Boot.

谢谢

我从Monitor History的相同JProfiler快照中添加了屏幕截图,以显示ResolvedTypeCache类所花费的时间.有时候时间较少但有时却很大.

最佳答案
你的结论对我来说似乎是非常错误的,特别是当你暗示这是坏的或者有潜在的死锁时.

在该类中存在同步方法的事实并不表示死锁.事实上,有多个线程在单个锁上等待 – 毕竟这是同步的.另外看那些时候,那些看起来像微秒,并且线程留在那里的最多是4000,这是大约4ms – 不是那么多.

由于这是一个内部库,因此没有太多可以做的,可能建议他们实现一个ConcurrentHashMap,它将提高性能或更好地自己制作一个补丁.

原文链接:https://www.f2er.com/spring/432410.html

猜你在找的Spring相关文章