6章ゴルーチンとGoランタイム
Goを使って開発するときには、言語自体が並行処理をとても簡単にしてくれているので、並行処理を使うのは楽しいひとときです。そうしたコードを書いている最中に、裏側でランタイムが(これまで説明したようなGoの並行処理のプリミティブを)どのように調和させているか知る必要があることは非常にまれです。それでも、ランタイムの動作に関する知識が役立つことはありましたし、2章 並行性をどうモデル化するかで議論したことはすべてGoランタイムが可能にしています。したがって、ランタイムがどう動作するかをのぞき見てみる価値はあります。Goランタイムの動作を知ることで、よりGoに興味が湧いてきます!
Goランタイムが行ってくれるすべての物事の中で、ゴルーチンを生成して管理してくれることが、あなたとあなたのソフトウェアにとっておそらく最も利益のあるものでしょう。Goを生んだ会社であるGoogleは計算機科学の理論とホワイトペーパーを実務に投入してきた歴史があるので、Goにもいくつかアカデミア由来のアイデアが組み込まれていることは驚きではありません。驚くべきは各ゴルーチンの裏にある叡智の量です。Goはあなたのプログラムをより性能が高いものにする強力なアイデアを巧みに扱うという素晴らしい仕事をしていますが、これらの詳細を抽象化して、開発者が実際に触る部分にはとても単純な表面だけを見せています。
6.1 ワークスティーリング
2.3 これがどう役に立つのかや3.1 ゴルーチンといった節で話したように、GoはあなたのかわりにゴルーチンをOSスレッド上へのマルチプレキシングをしてくれています。そこで使っているアルゴリズムはワークスティーリング(仕事を奪う)戦略として知られています。それはどういう戦略でしょうか。 ...
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.