ようこそ

「Async」は、複数のタスクを並行して実行する並行性モデルです。各タスクを、 ブロックしそうになるまで実行し、その後、進行可能な別のタスクに切り替える ことで動作します。このモデルにより、限られた数のスレッド上で、より多くの タスクを実行できます。これは、通常タスクごとのオーバーヘッドが非常に低く、 さらにオペレーティングシステムが、続行可能な I/O を効率的に識別するための プリミティブを提供しているためです。

Rust の非同期処理は「future」に基づいており、これは将来完了する可能性のある 処理を表します。future は、完了したことを示すまで「poll」されます。

future は async ランタイムによって poll され、いくつかの異なるランタイムが 利用できます。

比較

  • Python では、asyncio に同様のモデルがあります。ただし、その Future 型は コールバックベースであり、poll されません。Python の非同期プログラムには、 Rust のランタイムに似た「ループ」が必要です。

  • JavaScript の Promise も似ていますが、これもコールバックベースです。言語 ランタイムがイベントループを実装しているため、Promise の解決に関する詳細の 大部分は隠されています。

スケジュール

session outline