KDOC 280: パイプで結合されたプロセスは非同期実行されている
この文書のステータス
- 作成
- 2024-11-09 貴島
- レビュー
- 2024-11-14 貴島
概要
UNIXのパイプはあまりに自然に使えるので、プロセスが非同期に実行されていることを意識することがなかった。
ls | grep "target"
たとえば↑のように2つのコマンドをパイプでつないだとき、2つのプロセスは ls の実行が終わったあとに結果を絞り込んでいる、というように見えていた。順次実行しているように見えるが、これは誤った認識である。この例では、 ls と grep は同時に実行されている。
関連
抽象。
- 順番に処理しているように見えて、実際は同時に動いている
関連。
- 補足: KDOC 278: パイプはバッファがいっぱいになると処理をブロックする。パイプでつないだプロセスが、互いの進み具合に影響し合う例