2012-10-01 149 views
0

我有一個Java進程,我想在Windows(see here)中運行帶有後臺優先級的進程。有沒有簡單的方法來做到這一點?使用Java在Windows中設置進程優先級爲背景優先級

+0

您可以使用setPriority來設置它,但它通常被視爲一個提示,即使它不是,它也幾乎沒有區別。 –

+3

閱讀http://stackoverflow.com/questions/2865610/cross-platform-way-to-change-java-process-priority和http://stackoverflow.com/questions/6239142/how-to-change這可能會有所幫助,這是一個運行優先級的java進程 – MadProgrammer

回答

0

Java並未強制執行線程的任何實現,因此Windows上的Sun JVM與Linux上的Sun JVM等工作方式不同.Windows線程模型與Linux線程模型非常不同。甚至沒有任何事情要求Java線程映射到底層的OS線程。沒有(或者當我在一年前看過的時候),任何文檔JVM如何在WINDOWS上實現線程。

但是,在您的Windows特定情況下,您可能會使用JNI或COM接口來更改進程/線程優先級。我不會打擾,但我認爲這會非常脆弱,很難測試。從Java線程對象中獲取底層Windows線程ID是一個很困難的問題。

你的背景任務監測/做什麼?你能否以不同的方式思考你的問題:它的本質是什麼? Java併發API可能有助於提供明確要求的替代解決方案。