July 2025
Intermediate to advanced
284 pages
4h 4m
Japanese
本書をここまで読めば非同期プログラミングに馴染んできただろう。await文を見たら、フューチャ、タスク、スレッド、キューが舞台裏で動作していることがわかるようになったはずだ。しかし、非同期プログラミングの構成要素はどうだろう。非同期ランタイムを用いずにコードを停止し再開できたらどうだろう。さらに、この停止・再開機構を用いて、通常のテストフレームワークでコードをテストできないだろうか。このテストでは、多様なポーリングの順序と設定のもとでのコードの挙動をテストできる。また、この停止・再開機構は同期コードと非同期コードのインタフェースとしても機能する。ここで登場するのがコルーチンだ。
本章を読めば、コルーチンを定義し、その使用法を説明できるようになるはずだ。コルーチンをプログラムに統合し、大量にメモリを消費する可能性のあるタスクでも、メモリ消費量を抑えることができるようになる。さらに非同期の機能を非同期ランタイムを用いずに、コルーチンと基本的なエグゼキュータを用いて模擬できるようになる。つまり、非同期ランタイムを用いずに、プログラムのメインスレッドで非同期機能を利用できるようになる。さらに、コルーチンがポーリングされるタイミングと順序を細粒度に制御できるようになる。
![]() |
|
本書では、執筆時点のRustのnightlyビルドのコルーチン構文を用いる。この構文は変更される可能性があるし、安定化されるかもしれない。構文の変更は面倒だが、本章で述べるコルーチンの基礎は変わらない。構文が変わっても、コルーチン全体の実装や使用法に変わりはない。 ... |
Read now
Unlock full access