はじめに

 本書は、2020年3月頃から世界的に蔓延した新型コロナウイルスCOVID-19の災禍の真っ最中に執筆した。流行開始から1年以上たった2021年4月現在でも、日本ではその勢いは衰えることなく逆に増してきている。COVID-19の流行により緊急事態宣言やロックダウンが発動され世界経済は大きな打撃を受けたが、逆に本書の執筆が進んだ。これは、緊急事態宣言による巣ごもり効果もあるが、明日死ぬかもしれないという考えがめぐり、急いで書き上げたのも理由にある。幸い、著者はCOVID-19に感染することもなく無事に過ごせてはいるが、志半ばで病に倒れた方も世界には大勢いるだろう。そのような方々のご冥福をお祈りするとともに、一刻も早い収束を願う。また、医療従事者やエッセンシャルワーカの尽力にも感謝したい。

 よく、並行プログラミングは難しいと言われるが、その「難しい」には2種類ある。1つは、並行プログラミングのしくみを理解していないことによる「難しい」である。もう1つは、並行プログラミングの本質的な難しさからくる「難しい」である。本書は前者の「難しい」を解消し、後者の「難しい」に本格的に取り組むための入門としての役割を果たす。

 我々はリストや木構造のしくみや、ソートなどのしくみを理解してからプログラミングを行う。利用するツールやライブラリの動作原理を理解しプログラミングすることで、開発速度や実行速度を含めて効率的に実装を行える。一方、並行プログラミングについては、そのしくみを理解しないままプログラミングしていることがまま見受けられる。しかし、これは必ずしも開発者の不勉強が原因ではなく、勤勉な開発者であっても、並行プログラミングについて理解していない場合が多い。

 このような事態となっている理由は諸説あるとは思うが、主要因の1つとして、並行プログラミングについて包括的に説明した書籍が少ない、あるいは古い書籍しかないからではと著者は考えている。多種多様なデバイスがネットワークに繋がるようになり、並行プログラミング技術が必要なソフトウェアが爆発的に増加しているにもかかわらず、並行プログラミングについて包括的に習得できないというのは憂慮すべき事態である。 ...

Get 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ 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.