我正在使用这个Java版本:
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程序时,例如
java TestApp
默认情况下,JVM会并行运行吗?
如果是,哪些部分并行运行?
我对此感兴趣,因为我发现如果我使用taskset -c 0 java TestApp
绑定在TestApp
上运行的processor 0
,则第一次运行时间比java TestApp
慢得多。这意味着什么吗?
答案 0 :(得分:2)
有许多单线程任务都有自己的线程。
您的代码将仅使用您创建的线程数(加上为您创建的“main”)
答案 1 :(得分:1)
JVM具有本机线程,没有全局锁定,如果这就是您所要求的。
答案 2 :(得分:0)
第一个运行时间可能主要是将字节码JIT到机器代码。我非常强烈地怀疑该过程是针对并行场景进行优化的。