Threads[Mutex] パッケージの概要
使い方
Threads[Mutex][command](arguments)
command(arguments)
|
説明
|
|
•
|
Threads[Mutex] パッケージはミューテックスを使うためのユーザコマンドを提供します。ミューテックスは複数のスレッドが動いているときデータへのアクセスを制御するために使います。
|
•
|
ミューテックスにはロックまたはアンロックの状態のいずれかにできるものです。スレッドはアンロックされているミューテックスをロックすることができます。同じスレッドはミューテックスをあとでアンロックすることができます。ミューテックスがロックしている間、ロックしようとしたスレッドの実行はアンロックされるまで中断します。一度アンロックすると、待機しているスレッドはロックされるまで継続します。
|
•
|
複数のスレッドがロックされているミューテックスが待機およびミューテックスがアンロックとなったとき、スレッドの 1 つは ロックされるまで継続します。その他のスレッドはロックを得るまで待機し続けます。
|
•
|
ミューテックスの典型的な使い方は、複数のスレッドで分配されるデータ構造へのアクセスを制御します。例として、共有データに保存される仕事をしている 2 つのスレッドです。スレッドがデータ構造へのアクセスを保護しない限り、いずれのスレッドもリストから同じ仕事を取ろうとするかもしれません。さらに悪いことに、データ構造は平行した操作のため壊れるかもしれません。
|
|
ミューテックスを使ってこの問題を解決するために、ミューテックスをデータ構造と結びつけます。スレッドがデータ構造を操作したいときは、いつもミューテックスのロックを得る必要があります。一度ロックを得ると、そのスレッドはデータ構造へ排他的なアクセスをします。一度、スレッドが終了するとミューテックスをロックします。もし 2 つめのスレッドが 1 つめのスレッドがロックしている間にデータ構造にアクセスを試みた場合、処理は中断されミューテックスが使えるようになるのを待ちます。
|
|
|
Download Help Document
Was this information helpful?