性能问答>读写锁获取锁时出现java.lang.InterruptedException>
2回复
1年前

读写锁获取锁时出现java.lang.InterruptedException



异常如下:
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1245)
at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(ReentrantReadWriteLock.java:1115)

没有其他代码显式的对线程进行interrput()调用,这种情况是如何产生的?观察gc日志,在异常出现的时间点有过young gc。gc算法使用的是G1。
怀疑点:gc时触发STW,导致业务线程被中断。
疑问:是否有证据能够直接证明猜测?

2523 阅读
请先登录,再评论

这个跟gc应该没有关系,肯定还是你获取锁的这个线程被主动interrupt了,不一定是业务代码,可能是rpc框架之类的干的,比如dubbo就会有超时中断worker线程的操作,这个需要具体看是什么框架处理的

1年前
回复 ferdi:

我的第一排查思路就是被框架中断了,但是整个链路的耗时是100ms,接口的超时时间设计是1s,所以弄得我迷茫了

1年前回复