默认情况下,当前的HotSpot JVM是否并行运行? [英] Does the current HotSpot JVM run in parallel by default?
问题描述
我正在使用此Java版本:
I'm using this Java version:
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (suse-9.1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
当我启动Java程序时,例如
When I start a java program, e.g.
java TestApp
默认情况下,JVM是否可以并行运行?
by default, will the JVM run in parallel ?
如果是这样,哪些部分并行运行?
If so, which parts run in parallel ?
对此我很感兴趣,因为我发现如果我使用taskset -c 0 java TestApp
绑定在processor 0
上运行的TestApp
,则第一次运行时间要比java TestApp
慢得多.这暗示着什么吗?
I am interested in this, because I found if I use taskset -c 0 java TestApp
to bind TestApp
running on processor 0
, the first running time is much slower than java TestApp
. Does this imply something?
推荐答案
有许多具有自己线程的单线程任务.
There are a number of single threaded tasks which have a thread of their own.
- 运行程序的主线程
- 本机编译器的后台字节码
- 终结器线程(以在对象上调用finalize())
- GC线程池
您的代码将只使用您创建的线程数(加上为您创建的"main"线程)
Your code will only use as many threads as you create (plus "main" which created for you)
这篇关于默认情况下,当前的HotSpot JVM是否并行运行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!