1章並行処理入門

並行性というのは面白い言葉です。なぜならば、ソフトウェア開発の世界においてはさまざまな人がさまざまな意味でその言葉を使うからです。「並行性」に加えて、「非同期」「並列」「スレッド」といった言葉が飛び交っているのも聞いたことがあるでしょう。ある人はこれらの単語はすべて同じ意味であるといい、ある人はそれぞれの単語をそれぞれ別の意味として事細かに説明します。本書で並行性について議論する時間を価値のあるものにするためには、まず、私たちが「並行性」と言ったときに何を指すのかを議論するところから始めることに意味がありそうです。

並行性の哲学に関しては2章 並行性をどうモデル化するか:CSPとは何かで触れますが、いまは私たちの解釈の基礎となる実用的な定義を採用しましょう。

多くの人が「並行性」という言葉を使うときには、通常1つ以上の処理が同時に発生する処理のことを指しています。また通常は、暗にこれらの処理は同時に実行されるということも示唆しています。この定義のもとで並行性を考えるときの簡単な例は人間です。あなたはいまこの文を読んでいる一方で、他の人たちは彼らの人生を生きています。彼らはあなたと「並行して」存在しているのです。

並行性というのは計算機科学では幅広いトピックで、この定義から多くのトピックが派生します。たとえば、理論、並行性のモデル化手法、論理の正当性、実践的課題(それも理論物理においての!)です。本書では、これらの派生的な話題にも触れますが、たいていの場合はGoの文脈で並行性を理解するときに関係する実践的な問題に集中して話します。具体的にいえば、Goは並行性をどのようにモデル化するか、このモデルで生じる問題は何か、それらの問題を解決するためにどのようにプリミティブを組み合わせていくか、についてのみ考えます。 ...

Get Go言語による並行処理 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.