1章Rust並行性の基本

マルチコアプロセッサが当たり前になるずっと前から、オペレーティングシステムは、1つのコンピュータで複数のプログラムを並行に動作させることができていた。これは、複数のプロセスを素早く切り替えて、それぞれを1つずつ少しずつ進めることで実現されている。現在では、事実上すべてのコンピュータ、さらにはスマートフォンや腕時計でさえ、複数のコアが搭載されたプロセッサを持っており、複数のプロセスを本当に並列に実行している。

オペレーティングシステムは、プロセスを可能な限り互いに隔離する。このおかげで、個々のプログラムは他のプログラムが何をしているか全く気にしなくて済む。例えば、あるプロセスは他のプロセスのメモリを通常の方法ではアクセスできないし、オペレーティングシステムのカーネルに許可を得ないと、他のプロセスと通信することもできない。

しかし、プログラムは1つの「プロセス」の内部に複数の「実行スレッド」を生成することができる。1つのプロセス内のスレッドは互いに隔離されない。スレッドはメモリを共有し、そのメモリを通して互いにやり取りすることができる。

本章では、Rustでスレッドを生成する方法やスレッド間でデータを安全に共有する方法など、スレッドに関する基本的な概念をすべて説明する。本章で説明する概念は、本書の残りの部分の基礎となる。

[注記]

もしRustのこの部分についてはすでに知っているなら、次の章に進んで構わない。しかし、次の章に進む前に、スレッド、内部可変性、Send

Get 詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング 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.