unsafe.park与thread.wait几乎相同,除了它使用的是体系结构特定的代码(因此它是“不安全的”)。unsafe不会公开提供,但是会在Java内部库中使用,在Java内部库中,特定于体系结构的代码将提供明显的优化好处。它在线程池中使用了很多。
因此,要回答您的问题,线程正在做的就是等待某件事,它实际上并没有使用任何CPU。考虑到原始堆栈跟踪表明您正在使用锁,因此我认为您遇到的情况是死锁一直在发生。
是的,我知道您几乎可以肯定已经解决了这个问题。但是,如果有人用Google搜索sun.misc.unsafe.park,您将是最高的搜索结果之一。我认为回答这个问题可能会帮助其他人了解这种似乎正在使用其所有CPU的方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)