PriorityQueue - Rust
Автор: La tête dans le code
Загружено: 2025-11-16
Просмотров: 31
🎥 Vidéo 6 — Passage à l’asynchrone : tâches, await, et primitives non bloquantes
Dans cette vidéo, on transforme notre PriorityQueue équitable — jusque-là entièrement synchrone — en une version asynchrone, pilotée par Tokio, tout en conservant exactement le même cœur algorithmique (celui de pq-fair).
👉 Au programme :
Comprendre pourquoi le modèle asynchrone est indispensable quand un système passe son temps à attendre (I/O, timers, réseau…) ;
Différence fondamentale entre threads (préemptifs) et tâches (coopératives) ;
Comment async et await fonctionnent réellement : futures, suspension, et rôle du runtime ;
Pourquoi les primitives synchrones (Condvar, Mutex bloquant…) ne peuvent pas être utilisées en async ;
Présentation des trois briques qui remplacent une Condvar :
Semaphore (compteur d’items disponibles),
Notify (événement ponctuel : file devenue vide),
CancellationToken (arrêt global best-effort) ;
Structure interne : séparation entre AsyncState (état logique pur) et AsyncInner (outils Tokio) ;
Implémentation des méthodes :
enqueue() (ajout + permit),
dequeue() (tokio::select!, permits, annulation),
try_dequeue() (version non bloquante),
Une étape essentielle : notre file de priorité devient asynchrone, équitable, non bloquante et parfaitement maîtrisée, prête à être intégrée dans des architectures distribuées ou hautement concurrentes. ⚙️🦀
📚 Liens utiles pour la vidéo :
➡️ Tokio Semaphore → https://docs.rs/tokio/latest/tokio/sy...
➡️ Tokio Notify → https://docs.rs/tokio/latest/tokio/sy...
➡️ CancellationToken → https://docs.rs/tokio-util/latest/tok...
➡️ Futures en Rust → https://rust-lang.github.io/async-book/
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: