项目场景:
某个项目中,sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,于是就换成了使用SecureRandom.getInstanceStrong()获取SecureRandom并调用nextInt()。
悲剧开始了...
问题描述
在生产环境(linux)产生较长时间的阻塞,造成了nginx返回大量499,一度以为是tomcat不接收消息或是nginx转发问题,但开发环境(windows10)并未重现。
原因分析:
通过jstack发现,有599个线程的状态为waiting for monitor entry,在等待一个对象,而拥有这个对象的线程又被阻塞。
可以看到该线程阻塞在了jav