CriticalSection
CriticalSection[var,expr]
並列計算のためのロック var を取得し,expr を評価し,ロック var を解放する.
CriticalSection[{var1,var2,…},expr]
すべての変数 variを同時にロックする.
詳細
- 任意の並列カーネル上で同時実行できる同じロック変数の危険域が最高で1つ許容される.
- ロックとして使われる変数はマスターカーネルの値を持っていてはならない.
- WithLock[var,expr]はCriticalSection[var,expr]に等しい.
例題
すべて開くすべて閉じるアプリケーション (1)
CriticalSectionを使ってコードセクション全体を原子的にする:
特性と関係 (3)
これより効率は下がるが,共有変数と危険域を使うこともできる:
WithLockはCriticalSectionがシンボルに動作するのと同じように動作する:
Wolfram Research (2008), CriticalSection, Wolfram言語関数, https://reference.wolfram.com/language/ref/CriticalSection.html (2020年に更新).
テキスト
Wolfram Research (2008), CriticalSection, Wolfram言語関数, https://reference.wolfram.com/language/ref/CriticalSection.html (2020年に更新).
CMS
Wolfram Language. 2008. "CriticalSection." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/CriticalSection.html.
APA
Wolfram Language. (2008). CriticalSection. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CriticalSection.html