我有一个关于Java线程的问题。在java中,当运行在JVM之上时,线程可以在并行中运行实际上是吗?JVM是否将每个线程分别显示为OS?(使操作系统能够在同一时间内在多个内核中运行每个线程?)或者它们实际上只运行交错运行,因为OS认为所有线程都是JVM造成的?希望我的问题很清楚。
发布于 2012-01-09 17:24:53
我有一个关于Java的问题。在java中,当运行在JVM之上时,线程实际上可以并行运行吗?
这取决于操作系统和你拥有的硬件。然而,多核系统上的大多数JVM都可以同时运行线程。
JVM是否分别显示每个线程的
?(使操作系统能够在同一时间内在多个内核中运行每个线程?)
大多数JVM使用OS线程。在这种情况下,没有区别。
或者它们实际上只运行交错的线程,因为OS认为所有线程都是JVM造成的?
除非您有多个需要运行的线程(在大多数应用程序中通常都是这样),否则只会运行一个线程。事实上,每当您的CPU负载降到一个CPU以下时,在整个计算机中静态地运行的线程就少于一个。
发布于 2012-01-09 17:14:15
这取决于JVM的实现。JVM的现代实现将Java线程公开给操作系统。
https://stackoverflow.com/questions/8792322
复制相似问题