我想问一下,当线程被阻塞时,Java 是否会利用更多的 CPU 资源,即等待锁定当前正在被另一个线程锁定的监视器。
我现在正在查看一个线程转储,其中一些线程在等待锁定监视器时被阻塞,我不确定这是否是导致高 CPU 使用率的原因。
谢谢!
编辑(2011 年 5 月 6 日)我忘了提及此行为是否与 Java SE 1.4.2 相关。
最佳答案
线程消耗内存等资源。阻塞/解除阻塞线程会产生一次性成本。如果一个线程每秒阻塞/解除阻塞数万次,这会浪费大量的 CPU。
但是,一旦线程被阻塞,阻塞多长时间都没有关系,不会产生持续成本。
关于java - Java阻塞线程占用CPU资源多吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895895/