根據什麼ps
報告的好處是適用於Java線程。我跑這個快速測試與等待用戶輸入一個Java應用程序:
啓動過程有:啓動過程與nice -n 19 java Main
輸出的ps -m -l 20746
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 - 1000 20746 10006 0 - - - 1739135 - pts/2 0:00 java Main
0 S 1000 - - 0 99 19 - - futex_ - 0:00 -
1 S 1000 - - 0 99 19 - - wait_w - 0:00 -
1 S 1000 - - 0 99 19 - - futex_ - 0:00 -
1 S 1000 - - 0 99 19 - - futex_ - 0:00 -
:nice -n 15 java Main
輸出的ps -m -l 21488
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 - 1000 21488 10006 0 - - - 1722494 - pts/2 0:00 java Main
0 S 1000 - - 0 95 15 - - futex_ - 0:00 -
1 S 1000 - - 0 95 15 - - wait_w - 0:00 -
1 S 1000 - - 0 95 15 - - futex_ - 0:00 -
1 S 1000 - - 0 95 15 - - futex_ - 0:00 -
該NI
列似乎反映了我傳遞給nice
並且優先級也相應地改變。我使用jps
獲得了進程ID(20746,21488)。
請注意,例如運行jstack 21488
將不會提供上述信息。
我跑上面在Ubuntu 16.04 LTS(64位)
http://stackoverflow.com/a/2866604/829571 – assylias
「好」與優先級不同。好的目標是,如果兩個進程同時受CPU限制,那麼「更好」的平均CPU週期應該更少。 「優先級」通常就是當某個異步事件發生時哪個進程能夠搶佔另一個進程。 –