Skip to Main Content
並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ
book

並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

by 高野 祐輝
August 2021
Intermediate to advanced content levelIntermediate to advanced
384 pages
5h 31m
Japanese
O'Reilly Japan, Inc.
Content preview from 並行プログラミング入門 ―Rust、C、アセンブリによる実装からのアプローチ

5章非同期プログラミング

 いま、この本を読んでいる読者は、本を読むことに集中しているだろうが、もし仮に本を読んでいる最中に電話が鳴ったり、宅配便が到着したりすると、いったん本を読むのを中断してそれらの対応を行うだろう。このように、何らかの仕事を行っている最中に発生するような事象のことを、コンピュータの世界ではイベントや割り込みと呼ぶ。RustやCなど、いわゆる手続き的なプログラミング言語では、基本的に処理は実行順に記述しなければならない。処理を必ず実行順に記述しなければならないと、電話が鳴ったら本を中断して電話を取ると言ったような記述をすることは難しく、本を読み終えてから電話を取ると書かなければならない。このように書いてしまうと、当然、重要な電話を取り逃してしまう。

 記述したとおりの順番で動作するようなプログラミングモデルを同期的なプログラミングと呼ぶ。非同期プログラミングは、独立して発生するイベントに対する処理を記述するための並行プログラミング手法の総称である。非同期プログラミングの手法を用いることで、電話が鳴ったら電話を取る、宅配便が到着したら宅配便を受け取る、というようにイベントに応じた動作を記述することができる。非同期プログラミングでは、どのような順番で処理が実行されるかはソースコードから判別することはできず、処理の順番はイベントの発生順に依存する。

 非同期プログラミングを実現する方法として、コールバック関数やシグナル(割り込み)を用いる方法があるが、本章では特に、OSによるIO多重化方法と、現在多くのプログラミング言語で取り入れられている非同期プログラミング方法のFuture、async/awaitについて説明する。その後、Rustのasync/awaitによる非同期ライブラリのデファクトスタンダードであるTokio ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

Martin Kleppmann, 斉藤 太郎, 玉川 竜司

Publisher Resources

ISBN: 9784873119595Other