os.sched_yield(), sched_get_priority_min() și sched_get_priority_max() în Python

Procese (os) Python 3.3+ (Unix)

Funcții ale planificatorului de procese: cedarea procesorului și limitele de prioritate.

Sintaxă
os.sched_yield()
os.sched_get_priority_min(politica)
os.sched_get_priority_max(politica)

Ce face os.sched_yield(), sched_get_priority_min() și sched_get_priority_max()

sched_yield() cedează voluntar procesorul, lăsând alte procese sau fire gata de rulare să treacă înainte. sched_get_priority_min(p) și sched_get_priority_max(p) dau intervalul de priorități pentru o politică de planificare: os.SCHED_OTHER (normală), os.SCHED_FIFO și os.SCHED_RR (timp real). Pe Linux există și funcții pentru setarea politicii (sched_setscheduler), indisponibile pe macOS.

Parametri

Parametru Descriere
politica Politica de planificare.

Ce returnează

sched_yield: None. Celelalte: întregi.

Exemple

Exemplul 1: Intervalele de prioritate

import os
for nume in ["SCHED_OTHER", "SCHED_FIFO", "SCHED_RR"]:
    p = getattr(os, nume)
    print(nume, os.sched_get_priority_min(p), os.sched_get_priority_max(p))
os.sched_yield()

Rezultat posibil (pe Linux)

SCHED_OTHER 0 0
SCHED_FIFO 1 99
SCHED_RR 1 99

Greșeli frecvente

  • Folosești sched_yield() într-o buclă de așteptare activă. Consumă tot procesorul; folosește time.sleep sau mecanisme de sincronizare.

Comenzi înrudite