← retour aux snippets

queue.PriorityQueue: tâches avec priorités

Planifier des éléments avec priorité (plus petit d'abord).

python concurrency #queue#priority#scheduler

objectif

Planifier des éléments avec priorité (plus petit d’abord).

code minimal

import queue
pq: "queue.PriorityQueue[tuple[int,str]]" = queue.PriorityQueue()
pq.put((10,"low")); pq.put((1,"high"))
first = pq.get()
print(first[1] == "high")  # attendu: True

utilisation

import queue
pq = queue.PriorityQueue()
for p in [3,1,2]: pq.put((p, f"t{p}"))
got = [pq.get()[0] for _ in range(3)]
print(got == [1,2,3])

variante(s) utile(s)

import queue
pq = queue.PriorityQueue()
pq.put((0, ("tie-break", 1)))
print(not pq.empty())

notes

  • Si égalité, Python compare l’élément suivant du tuple -> ajoutez un tiebreaker.
  • Bloquant/thread-safe, idéal pour planificateurs simples.