四核CPU支持几个线程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四核CPU支持几个线程相关的知识,希望对你有一定的参考价值。
四核你可以到太平洋查参数`如果有超线程`就是可以8个线程`没的话就只能4个线程...
目前就I3的双核和I7的四核有超线程`
参考技术A 四核i5只支持超线路技术,因此只有四个线程!!i7能够支持超线程技术,可支持八线程同时作业。 参考技术B 如果没超线程的话,4核的当然是是4线程。如果是i7具有超线程技术,默认就是四核心八线程. 参考技术C 8个线程 参考技术D 8个四核 CPU 上的 Java (log4j) 死锁。为啥要 300% 的 CPU?
【中文标题】四核 CPU 上的 Java (log4j) 死锁。为啥要 300% 的 CPU?【英文标题】:Java (log4j) deadlock on quad-core CPU. Why 300% CPU?四核 CPU 上的 Java (log4j) 死锁。为什么要 300% 的 CPU? 【发布时间】:2013-02-11 09:18:06 【问题描述】:我的 Tomcat 网站偶尔挂起。当我转储堆栈跟踪时,我看到多达 200 个这样的线程:
"TP-Processor200" daemon prio=10 tid=0x00007fddf062a800 nid=0x4bce waiting for monitor entry [0x00007fdd5020b000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.apache.log4j.Category.callAppenders(Category.java:204)
- waiting to lock <0x00000007808d3a88> (a org.apache.log4j.spi.RootLogger)
at org.apache.log4j.Category.forcedLog(Category.java:391)
然后,java 进程正在消耗 300% 的 CPU。我期待看到三个线程处于 RUNNING 状态,但我没有找到。相反,我会为每条处于 BLOCKED 状态的日志消息找到一个。
-
为什么是 300% CPU?这是一个 JVM 的东西,最多可以使用核心数 - 1 个线程吗?
什么会导致死锁?我正在使用最新的 log4j.jar。问题只发生在 tomcat 6.0.35/java 1.6.0_31-b04 上,而不是 tomcat 6.0.18/java 1.6.0_17-b04
谢谢
【问题讨论】:
我可能是盲人,错过了三个 RUNNABLE 线程。 log4j Appender 中有循环。我还是想知道为什么每次都正好三个线程... 【参考方案1】:对我来说看起来不像死锁:应用程序完全利用了所有三个内核。此外,似乎应用程序在 log4j 中遇到了锁争用,因此大多数线程大部分时间都在等待 log4j appender 被当前正在使用它的线程释放。
【讨论】:
以上是关于四核CPU支持几个线程的主要内容,如果未能解决你的问题,请参考以下文章