真实的Java线程

时间:2012-01-09 17:12:01

标签: java multithreading

我对Java Threads有疑问。在java中,在JVM上运行时,线程可以并行运行实际吗? JVM是否将每个线程分别显示为操作系统? (允许操作系统同时在多个内核中运行每个线程?)或者它们实际上只运行交错,因为操作系统将所有线程视为一个由于JVM而导致的线程?希望我的问题很明确。

2 个答案:

答案 0 :(得分:6)

这取决于JVM的实现。 JVM的现代实现将Java线程暴露给操作系统。

答案 1 :(得分:2)

  

我对Java Threads有疑问。在java中,当在JVM上运行时,线程实际上可以并行运行吗?

这取决于操作系统和硬件。但是,多核系统上的大多数JVM都可以同时运行线程。

  

JVM是否将每个线程分别显示为操作系统? (允许操作系统同时在多个核心中运行每个线程?)

大多数JVM使用操作系统线程。在这种情况下,没有区别。

  

或者他们实际上只运行交错,因为操作系统将所有线程视为一个由于JVM而导致的?

除非您需要运行多个线程(大多数应用程序通常都是这种情况),否则只会运行一个线程。实际上,只要CPU负载低于一个CPU,就可以在整个机器中静态运行少于一个线程。