Python | os.setpriority 函數

最近更新時間 2020-12-07 15:57:26

os.setpriority 函數設置程序調度優先級。 which 的值為 PRIO_PROCESS, PRIO_PGRP 或 PRIO_USER 之一,而 who 會相對於 which (PRIO_PROCESS 的進程標識符, PRIO_PGRP 的進程組標識符和 PRIO_USER 的用户 ID) 被解析。 who 值為零 (分別) 表示調用進程,調用進程的進程組或調用進程的真實用户 ID。 priority 是範圍在 -20 至 19 的值。 默認優先級為 0;較小的優先級數值會更優先被調度。

通過 os.getpriority(which, who) 獲取進程優先級。

函數定義

os.setpriority(which, who, priority)
# 函數定義

if sys.platform != 'win32':
    # Unix only
    ...
    def setpriority(which: int, who: int, priority: int) -> None: ...
    ...

兼容性:Unix 系統。

參數

  • checkwhich - which 參數值。
    • os.PRIO_PROCESS=0 進程標識符。
    • os.PRIO_PGRP=1 進程組標識符。
    • os.PRIO_USER=2 用户ID。
  • checkwho - 跟 which 值對應。
  • checkpriority - priority 是範圍在 -20 至 19 的值。 默認優先級為 0;較小的優先級數值會更優先被調度。

返回值

  • checkNone - 無。

示例1: - 使用 os.setpriority() 函數設置進程優先級。

# coding=utf-8

# Python3 代碼
# 講解怎樣使用 os.setpriority() 函數設置優先級

# 引入 os 庫
import os


# 根據 pid 獲取優先級
which = os.PRIO_PROCESS
who = os.getpid()

# 當前優先級
pro = os.getpriority(which, who)
print("PRO::", pro)

# 設置優先級,降級
os.setpriority(which, who, pro+1)

# 獲取優先級
print("PRO::", os.getpriority(which, who))
PRO:: 0
PRO:: 1
rss_feed