是否多线程Java进程比操作系统的单线程程序更经常地调度?

问题描述:

当我运行一个多线程的java程序时,在做一个ps -eF | grep程序名我只看到一个进程。作为该进程的一部分运行的线程是子进程。操作系统在调度方面是否以不同的方式处理单线程和多线程的进程?是否多线程Java进程比操作系统的单线程程序更经常地调度?

+1

也许重复的问题,但也有一些不错的资源:http://*.com/questions/8463741/how-linux-handles-threads-and-进程调度 – gusto2

+0

谢谢! http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread 此链接提供了非常好的洞察力 – Abhijeet

不,对单线程或多线程进程有统一处理。 OS将进程视为线程和调度线程的集合;这是改变调度器的选择的整场比赛,只有当它被认为或看重的进程的优先级(否决)

Java不安排,它代表调度底层的操作系统。每个操作系统都有自己喜欢的安排方式。通常情况下,上面可以说(有可能是例外!)

+1

如果进程被分成多个线程,使得它们中的多个线程可以同时运行,其中超过一个将会运行。你不能像这样做一揽子报表。 – EJP

+0

@EJP theBeacon没有要求任何东西。事实上,OS进程可能有多个线程,它依赖于OS调度程序来调度线程。单个线程进程以及与线程(以及 - 一个单一的一个)的处理。顺便说一句 - 优先级应该仅被认为是暗示,有没有保证具有更高优先级的线程会得到更多的CPU时间 – gusto2