2017-02-17 78 views
0

當我運行一個多線程的java程序時,在做一個ps -eF | grep程序名我只看到一個進程。作爲該進程的一部分運行的線程是子進程。操作系統在調度方面是否以不同的方式處理單線程和多線程的進程?是否多線程Java進程比操作系統的單線程程序更經常地調度?

+1

也許重複的問題,但也有一些不錯的資源:http://stackoverflow.com/questions/8463741/how-linux-handles-threads-and-進程調度 – gusto2

+0

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

回答

0

不,對單線程或多線程進程有統一處理。 OS將進程視爲線程和調度線程的集合;這是改變調度器的選擇的整場比賽,只有當它被認爲或看重的進程的優先級(否決)

Java不安排,它代表調度底層的操作系統。每個操作系統都有自己喜歡的安排方式。通常情況下,上面可以說(有可能是例外!)

+1

如果進程被分成多個線程,使得它們中的多個線程可以同時運行,其中超過一個將會運行。你不能像這樣做一攬子報表。 – EJP

+0

@EJP theBeacon沒有要求任何東西。事實上,OS進程可能有多個線程,它依賴於OS調度程序來調度線程。單個線程進程以及與線程(以及 - 一個單一的一個)的處理。順便說一句 - 優先級應該僅被認爲是暗示,有沒有保證具有更高優先級的線程會得到更多的CPU時間 – gusto2

相關問題