【こうぞうかへいこうせい】
構造化並行性 とは?
公開:
💡 並行処理も「スコープ」で管理すれば、迷子のタスクはいなくなる
並行タスクのライフタイムをスコープ内に閉じ込め、タスクのリークや競合を防ぐプログラミングパラダイム。スコープを抜けるとすべてのタスクが完了・キャンセルされることが保証される。
📌 このページのポイント
並行処理って、タスクをたくさん同時に動かすやつだよね?何が難しいの?
タスクを起動したはいいけど、どこで終わるか管理できなくなるのが問題なんだよ。「タスクリーク」って言って、気づいたらゾンビタスクだらけになることがあるんだ。
ゾンビタスク!それは怖いね。どうやって解決するの?
スコープを閉じたら全部終わるの?それなら安心だね!
どんな言語で使えるの?
構造化プログラミングって昔のgotoをなくした話と似てる気がする!
鋭いね!まさにその考え方を並行処理に応用したんだよ。「goto廃止でコードの流れを構造化したように、タスク生成を構造化しよう」という発想なんだ。
まとめ:ざっくりこれだけ覚えればOK!
「構造化並行性」って出てきたら「並行タスクのスコープ管理」と思えればだいたいOK!
📖 おまけ:英語の意味
「Structured Concurrency」 = 構造化並行性
💬 「構造化プログラミング」(goto廃止)の思想を並行処理に適用した概念で、Martin Sústrik や Nathaniel J. Smith らが2016年頃に提唱したんだよ