Skip to Content
詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング
book

詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング

by Mara Bos, 中田 秀基
November 2023
Intermediate to advanced
236 pages
3h 24m
Japanese
O'Reilly Japan, Inc.
Content preview from 詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング

10章アイディアとインスピレーション

並行性に関するトピック、アルゴリズム、データ構造、小話などはいくらでもあり、これらの章を独立に設けてもよかっただろう。しかし、この10章が最後の章で、そろそろ読者とたもとを分かつときだ。読者には、新しい可能性に対する興奮と、実用的に応用できる新たな知識と技術を与えられたと思う。

10.1 セマフォ

セマフォは2つの操作だけを持つカウンタにすぎない。シグナル(signal)(upもしくはVとも呼ばれる)とウェイト(wait)(downもしくはPとも)の2つだ。シグナル操作は、カウンタをある上限値までインクリメントし、ウェイト操作はデクリメントする。カウンタの値が0なら、ウェイト操作はブロックし、対応するシグナル操作が来るのを待機する。したがってカウンタの値は負にはならない。セマフォは柔軟なツールで、他の同期プリミティブを実装するためにも用いられる。

セマフォ

図10-1 セマフォ

セマフォは、カウンタに用いるMutex<u32>と、ウェイト操作の待機に用いるCondvarを組み合わせれば実装できる。しかし、もっと効率的に実装する方法がいくつかある。特に、futexスタイルの操作(「8.3.1 Futex」)をサポートしているプラットフォームでは、1つのAtomicU32で効率的に実装できる(AtomicU8でも可能)。

最大値を1としたセマフォはバイナリセマフォ(binary semaphore)とも呼ばれ、他のプリミティブを構築する際の構成要素として用いられる。例えば、カウンタを1に初期化し、ウェイト操作をロックに、シグナル操作をアンロックに用いればMutexになる。カウンタを0に初期化すれば、条件変数のようにシグナルを送るために使うこともできる。例えば、標準ライブラリ ...

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.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

データ保護完全ガイド ―あらゆるデータの保全と回復を可能にする

データ保護完全ガイド ―あらゆるデータの保全と回復を可能にする

W. Curtis Preston, 佐野 泰之, 池田 祥孝
作って動かすALife ―実装を通した人工生命モデル理論入門

作って動かすALife ―実装を通した人工生命モデル理論入門

岡 瑞起, 池上 高志, ドミニク チェン, 青木 竜太, 丸山 典宏

Publisher Resources

ISBN: 9784814400515Publisher Website