Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第1部: Rustにおける非同期プログラミングのガイド

本書のこの部は、async Rustのチュートリアル形式のガイドです。Rustにおける非同期プログラミングの初心者を対象としています。他の言語で非同期プログラミングを経験したことがあるかどうかにかかわらず役立つはずです。経験がある場合は、最初のセクションを飛ばすか、復習としてざっと読むとよいでしょう。また、この他の言語における非同期との比較も、早めに読んでおくとよいかもしれません。

中核概念

まず、プロセス、スレッド、非同期タスクを使った並行プログラミングのさまざまなモデルについて説明します。最初の章では、Rustの非同期モデルの重要な部分を扱います。その後、asyncとawaitのプログラミングパラダイムを導入する第2章で、非同期プログラミングの詳細に入ります。次の章では、さらにいくつかの非同期プログラミングの概念を扱います。

非同期プログラミングの主な動機の1つは、より高性能なI/Oです。これは次の章で扱います。また、同じ章でブロッキングについても詳しく扱います。ブロッキングは非同期プログラミングにおける大きな危険要因であり、同期的に待機する操作(多くの場合I/O)によって、スレッドの進行が妨げられることを指します。

非同期プログラミングのもう1つの動機は、並行コードの抽象化と合成のための新しいモデルを可能にすることです。それを扱った後、並行タスク間の同期に進みます。

非同期プログラミングのためのツールに関する章があります。

最後のいくつかの章では、より専門的なトピックを扱います。まずは非同期の破棄とクリーンアップから始めます(これはよくある要件ですが、現時点では優れた組み込みの解決策がないため、やや専門的なトピックです)。

このガイドの次の2つの章では、非同期プログラミングの2つの基本的な構成要素であるFutureランタイムについて詳しく説明します。

最後に、タイマーとシグナル処理、および非同期イテレーター(別名ストリーム)を扱います。後者は、非同期イベントのシーケンスを扱う方法です(Futureや非同期関数を使って表現される個々の非同期イベントと比較してください)。これは言語が活発に開発されている領域であり、やや粗削りなところがあります。