os.nice(), getpriority() și setpriority() în Python

Procese (os) Python 3.0+ (getpriority/setpriority: 3.3+; Unix)

Citește și schimbă prioritatea de planificare a unui proces.

Sintaxă
os.nice(increment)
os.getpriority(tip, id)
os.setpriority(tip, id, prioritate)

Ce face os.nice(), getpriority() și setpriority()

Valoarea „nice” merge de la -20 (prioritate maximă) la 19 (prioritate minimă). nice(n) crește valoarea procesului curent cu n și returnează noua valoare; doar administratorul poate scădea valoarea. Este util pentru sarcini de fundal (backup, compresie) care nu trebuie să încetinească restul sistemului.

getpriority(tip, id) și setpriority(tip, id, p) lucrează cu orice proces (os.PRIO_PROCESS), grup (PRIO_PGRP) sau utilizator (PRIO_USER); id 0 înseamnă cel curent.

Parametri

Parametru Descriere
increment Cu cât crește valoarea nice.
tip, id Ce proces/grup/utilizator.

Ce returnează

nice, getpriority: un întreg.

Exemple

Exemplul 1: Sarcină de fundal cu prioritate mică

import os
pid = os.fork()
if pid == 0:
    print("copil, nice:", os.getpriority(os.PRIO_PROCESS, 0))
    print("după nice(5):", os.nice(5))
    os.setpriority(os.PRIO_PROCESS, 0, 10)
    print("după setpriority:", os.getpriority(os.PRIO_PROCESS, 0), flush=True)
    os._exit(0)
os.waitpid(pid, 0)

Rezultat

copil, nice: 0
după nice(5): 5
după setpriority: 10

Greșeli frecvente

  • Încerci să crești prioritatea (os.nice(-5)) fără drepturi de administrator și primești PermissionError.

Comenzi înrudite