streamとは
ストリーム(Stream)は、非同期プログラミングにおいてデータを非同期に扱うための抽象化された概念。
ユーザーの入力、ネットワークからのデータの到着、ファイルからの読み取り、タイマーのイベントなどがストリームとしてモデル化される。
主な特徴や概念
- 非同期性 (Asynchronous)
- ストリームは非同期にデータを生成および消費する。これは、イベントが発生するのを待たずにプログラムが継続的に実行できることを意味する。
- イベントのシーケンス:
- ストリームは連続するイベントのシーケンスを表現する。これは、時間の経過とともにデータが到着するケースを扱うためのもの。
- リスナー(購読者)
- ストリームはリスナー(または購読者)がそれに購読することができるようになっている。リスナーは新しいイベントが到着するたびに通知を受け取り、対応する処理を実行する。
- データのフロー
- : ストリームはデータが一方向に流れる仕組みを持っている。通常、プロデューサー(データを生成する側)とコンシューマー(データを受け取る側)が別れており、データはプロデューサーからコンシューマーへと順次伝播する。
Dartでは、Stream クラスがストリームの基本的な機能を提供し、StreamController や StreamBuilder などがこれを補完してストリームベースの非同期プログラミングをサポートする。