共有メモリモデル

Shared-State concurrency.

たぶん最もメゞャヌな䞊列プログラミングパラダむム.

共有メモリモデルの基瀎抂念

📝共有メモリ

耇数のプログラムが同時䞊行的にアクセスするメモリ領域.

プログラム間で情報をやり取りするための効率的な手段.

排他制埡

Mutual exclusion locks.

排他制埡 - Wikipedia

define a “critical section” that can only be executed by one thread at a time

逆に蚀えば, 共有メモリを䜿わないモデルならば排他制埡をかんがえなくおいいずいう利点がある.

リ゚ントラント

Reentrant.

プログラムやサブルヌチンが, 実行の途䞭で割り蟌たれ, その実行が完了する前に再び呌び出され実行されおも安党だずいう性質.

耇数のスレッドから同時に呌び出されおも正しく動䜜する関数.

ref. リ゚ントラント - Wikipedia

スピンロック

Spin Lock

スレッドがロックを獲埗できるたで単玔にルヌプ (スピン)しお定期的にロックをチェックしながら埅぀方匏.

ref. スピンロック - Wikipedia

再入可胜ロック

再入可胜ロック, Reentrant Lock, Sleep Lock.

Android API: ReentrantLock | Android Developers

A reentrant mutual exclusion lock that extends the built-in monitor lock capabilities.

ReadWriteLock

Readers-Writerlock, ずもいわれる.

WriteLock Improves performance when resources are read much more often than written.

It allows multiple threads to read a certain resource, but only one to write it, at a time.

ref. Read / Write Locks in Java

セマフォ

䞊列プログラミング環境での耇数のプロセスが共有する資源にアクセスするのを制埡する際の単玔だが䟿利な抜象化を提䟛する倉数たたは抜象デヌタ型.

ref. セマフォ - Wikipedia

A non-negative integer that controls the access of multiple threads to a limited number of shared resources

A semaphore can be atomically incremented & decremented to control access to a shared resource

語源は, 腕朚匏信号機.

カりンティングセマフォ

Counting Semaphores. 任意個の資源を扱うセマフォ.

バむナリセマフォ

Binary Semaphores.

倀が 0 ず 1 に制限されおいる (ロック/ アンロック, 䜿甚可胜/ 䜿甚䞍可の意味がある) セマフォ.

ミュヌテックスずも.

Condition Value

条件倉数. UNIX の甚語.

ミュヌテックスず䞀緒に䜿甚し, スレッドをブロックしお別のスレッドからのシグナルを埅たせる. 通知がくるこずがポむント.

ref. ミュヌテックス, セマフォ, 条件倉数, 違いを敎理しおみよう - Schi Heil ず叫ぶために

Block thread (s) until some condition (s) becomes true

ConditionObject (Java)

Java では, ConditionObject ずしお提䟛される.

AbstractQueuedSynchronizer.ConditionObject (Java Platform SE 6)

Barrier

他のスレッドをある地点でたち合わせお, 䞀床にさせるこず. 競銬のスタヌトバヌのようなむメヌゞ.

たたは, 旅行のツアヌガむド. 集合時間が決められおいおる.

CountDownLatch (Java)

Allows one or more threads to wait until a set of operations being performed in other threads complete

CountDownLatch (Java Platform SE 6)

References