filmov
tv
Crust of Rust: Channels
Показать описание
In this (fifth) Crust of Rust video, we cover multi-produce/single-consumer (mpsc) channels, by re-implementing some of the std::sync::mpsc types from the standard library. As part of that, we cover what channels are used for, how they work at a high level, different common channel variants, and common channel implementations. In the process, we go over some common Rust concurrency primitives like Mutex and Condvar.
This is a rich topic, and I highly recommend you go and try to read the crossbeam-channel or flume source code if you're hungry for more! Please also leave questions here or on Discord if you're confused, and I'll try to help explain what's going on.
0:00:00 Introduction
0:08:20 Initial structure
0:14:27 Structure Q&A
0:19:20 send and recv
0:29:03 send/recv Q&A
0:34:36 Does it work?
0:40:28 Zero senders
0:46:27 Q&A
0:50:53 Why does it hang?
0:53:08 Implementation Q&A
0:58:37 Synchronous channels
1:05:55 Batch recv optimization
1:13:23 Channel flavors
1:18:48 Flavor Q&A
1:22:32 Other implementations
1:32:24 Future-aware channels
1:36:27 Where next?
1:38:24 Channels Q&A
This is a rich topic, and I highly recommend you go and try to read the crossbeam-channel or flume source code if you're hungry for more! Please also leave questions here or on Discord if you're confused, and I'll try to help explain what's going on.
0:00:00 Introduction
0:08:20 Initial structure
0:14:27 Structure Q&A
0:19:20 send and recv
0:29:03 send/recv Q&A
0:34:36 Does it work?
0:40:28 Zero senders
0:46:27 Q&A
0:50:53 Why does it hang?
0:53:08 Implementation Q&A
0:58:37 Synchronous channels
1:05:55 Batch recv optimization
1:13:23 Channel flavors
1:18:48 Flavor Q&A
1:22:32 Other implementations
1:32:24 Future-aware channels
1:36:27 Where next?
1:38:24 Channels Q&A