在大型客户生产部署中,我们使用JProfiler 11.x来衡量应用程序的性能。 JProfiler报告了5分钟的时间,小于执行java.lang.Object#notifyAll时线程被卡住15秒钟的10倍。
为什么java.lang.Object.notifyAll需要这么长时间才能完成? notifyAll是在java.util.collection.LinkedList上执行的。此列表包含入站TCP消息队列。
环境: Windows Server 2012 SP2 64位 Java 8u171 64位 4个CPU插槽,每个插槽2个CPU内核