java - Java阻塞线程占用CPU资源多吗?

标签 java multithreading cpu dump blocked-threads

我想问一下,当线程被阻塞时,Java 是否会利用更多的 CPU 资源,即等待锁定当前正在被另一个线程锁定的监视器。

我现在正在查看一个线程转储,其中一些线程在等待锁定监视器时被阻塞,我不确定这是否是导致高 CPU 使用率的原因。

谢谢!

编辑(2011 年 5 月 6 日)我忘了提及此行为是否与 Java SE 1.4.2 相关。

最佳答案

线程消耗内存等资源。阻塞/解除阻塞线程会产生一次性成本。如果一个线程每秒阻塞/解除阻塞数万次,这会浪费大量的 CPU。

但是,一旦线程被阻塞,阻塞多长时间都没有关系,不会产生持续成本。

关于java - Java阻塞线程占用CPU资源多吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5895895/

相关文章:

无法从静态上下文中引用 java 非静态方法 getBalance

java - Zk 从选定选项卡中删除事件监听器

java - JPopupMenu 显示大量信息时向上和向下的箭头

c - 如何创建 2 个线程并交替打印线程 ID 和从 1 到 20 的数字?

java - 如何使用java获取jvm进程对每个cpu核心消耗的cpu使用率?

java - 从 JSONObject 获取数据

c++ - 从两个线程调用 std::deque 上的删除和push_back是否是线程安全的?

java - 在 C (JNI) 中结束 Java 线程

c - 为什么双链表中的指针追逐可以避免缓存抖动(自驱逐)?

c - 内存初始化时linux高内核cpu使用率