8

ミューテックス、セマフォ、クリティカルセクションについて読んでいました。ミューテックスがリソースを同期して、一度に1つのスレッドだけがリソースにアクセスできるようにすることを理解しています。セマフォは、特定の数のスレッドがリソースにアクセスすることを許可しますが、クリティカルセクションは何をしますか?

4

1 に答える 1

15

通常の使用では、クリティカルセクションは、シリアルに実行する必要があるコードのセクションです。つまり、常に1つのスレッドのみがそのコードを実行できます。通常、ミューテックスセマフォでコードを保護することでこれを実現します。

Windowsの用語では、クリティカルセクションは、プロセス固有のミューテックスセマフォ(つまり、個別のプロセス間ではなく、単一のプロセス内のスレッド間でロックするためにのみ使用されるセマフォ)で実装されるデータ構造(およびいくつかの関連関数)です。

セマフォには2つの種類があります。ミューテックスセマフォでは、一度に1つのスレッドのみを実行できます。カウントされたセマフォを使用すると、同時に実行できるスレッドの最大数を指定できます。ミューテックスセマフォはより一般的な種類ですが、カウントされたセマフォにも間違いなく用途があります。

于 2012-05-04T21:43:03.577 に答える