第72章へようこそ。
今日のテーマは「Tokioの深掘り」です。
第51章でTokioの基本を学びました。
spawnでタスクを作り、awaitで待ち、sleepで非同期に眠る。
でもあの章では「何が起きているか」をほとんど説明しませんでした。
ランタイムの中で、タスクはどう管理されているのか。
マルチスレッドランタイムとシングルスレッドランタイムは、何が違うのか。
selectマクロは、なぜ複数のFutureを同時に扱えるのか。
tokio::syncとstd::syncは、なぜ両方存在するのか。
道具の使い方だけでなく、道具の中身を知ると、判断力が変わります。
「なぜこうなっているのか」がわかると、「いつ使うべきか」がわかる。
なお、この章では仕組みの本質を伝えることを優先して、実装の細部は簡略化して説明しています。
実際のTokioの内部実装はさらに複雑ですが、メンタルモデルとしてはここでの理解で十分です。