我正在使用这个 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
来绑定(bind)运行在处理器0
上的TestApp
,第一次运行时间比 java TestApp
慢很多。这是否暗示着什么?
最佳答案
有许多单线程任务有自己的线程。
- 运行你程序的主线程
- 本地编译器的后台字节码
- 终结器线程(在对象上调用 finalize())
- GC线程池
您的代码将只使用与您创建的线程一样多的线程(加上为您创建的“main”)
关于jvm - 当前的 HotSpot JVM 默认是并行运行的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12219424/