我在负载测试期间为我的应用程序进行了一些线程转储,发现我所有的 Cacheable read_only 实体都在其中注册了一些锁。我还看到写在磁盘上的 .data 文件。这是正常的吗?.data 文件上写的是什么?
我使用以下注释:
@Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_ONLY)
线程转储堆栈跟踪:
"some.come.entity.SomeEntity.data" daemon prio=10 tid=0x00007f9fad47f000 nid=0x7b2e waiting on condition [0x00007f9ef74b3000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x000000073ff0f098> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1090)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)