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știPermissionError.
Comenzi înrudite
os.sched_yield(), sched_get_priority_min() și sched_get_priority_max(): Funcții ale planificatorului de procese: cedarea procesorului și limitele de prioritate.os.getpid() și os.getppid(): Identificatorul procesului curent și al procesului părinte.