簡體   English   中英

控制Java調度算法

[英]Controlling the java scheduling algorithm

今天我正在和一個有趣的受訪者交談,他堅持認為提高Java應用程序性能的最佳方法是重寫線程調度算法。 考慮到我們依賴JVM線程調度算法,我有理由肯定這是不可能的,但是我想知道是否可以使用任何技術來影響調度算法。 或者甚至有令人信服的理由這樣做。

PS該應用程序沒有任何嚴重的性能問題。 受訪者有點熱衷。

他戴着帽子說話。 沒有Java線程調度算法。 從1999年開始,線程是由操作系統調度的。

即使有,也沒有明智的選擇,您可以實現自己的JVM,而無需實現自己的JVM。

問他如何。

我非常確定Java語言規范沒有具體指定線程(即處於RUNNABLE狀態的線程)的調度方式。 這可能需要某種公平性,但是細節最有可能由JVM實現者決定(這意味着您所控制的JVM超出了所討論的JVM所能提供的)。

出於效率方面的考慮,其中大多數可能會立即將任務推遲到OS。

我看看是否可以找到一些參考。


您可以通過例如設置優先級來“調整”調度(例如,在Thread上的文檔中: 每個線程都有優先級。優先級較高的線程優先於優先級較低的線程執行 ),或者通過同步線程使用監視器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM