我在Linux上使用C++進行boost。C++&boost :: threads - 如何根據工作類型區分線程的優先級?
根據工作類型優先考慮線程的最佳方法是什麼? 是否可以改變POSIX/pthread/Linux中的線程優先級?
我在Linux上使用C++進行boost。C++&boost :: threads - 如何根據工作類型區分線程的優先級?
根據工作類型優先考慮線程的最佳方法是什麼? 是否可以改變POSIX/pthread/Linux中的線程優先級?
據我所知,boost並沒有提供一個API來執行它(C++ 11標準肯定沒有)。
在Linux上,您可以將nice
或setpriority
各自獨立於其他線程。但是請注意,這是不POSIX,符合的:
根據POSIX,漂亮的值是每個進程設置。但是,在當前的POSIX線程的Linux/NPTL實現下,nice值是per-thread屬性:同一進程中的不同線程可能具有不同的好值。便攜式應用程序應該避免依賴於Linux的行爲,這可能會使未來的標準保持一致。
因爲Linux使用pthreads
(也是如此的boost
Linux移植),你也可以使用pthread_setschedparam
其具有比在Linux特有的每個線程nice
行爲更便攜的優勢。
在這兩種情況下,都存在輕微的不安,因爲不得不求助於系統設施來管理所謂的「不透明」的資源,因此請慎重行事(與任何特定於實現的)。
如果這些重新劃分的線程中的一個分叉,子進程是否具有線程或原始進程的優先級? – TSG