📝共有メモリモデル

📝共有メモリモデル

up: 📝䞊行プログラミング

共有メモリモデル #

Shared-State concurrency.

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

排他制埡 #

Mutual exclusion locks.

排他制埡 - Wikipedia

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

スレッドセヌフ #

Thread Safe.

耇数のスレッドからどのような順番でアクセスされおも正しくふるたうこず. 呌び出し偎にアクセス順番を考慮させたり, 同期化を求めるようなこずはしおはならない.

リ゚ントラント #

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

  • wait
  • signal
  • signalAll

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 #