Python | os.setpriority 函数

Lasted 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