ミューテックス

著者: Robert Simon
作成日: 21 六月 2021
更新日: 14 5月 2024
Anonim
セマフォとミューテックスの違いは何ですか
ビデオ: セマフォとミューテックスの違いは何ですか

コンテンツ

定義-Mutexの意味?

C#のMutexは、.NETフレームワーククラスライブラリで定義されているクラスであり、単一または複数のプロセスで実行されている複数のスレッドによるコードブロックの同時実行を防ぐために使用できます。

Mutexは、リソースを複数のスレッドで同時に共有する必要がある場合に、同期プリミティブとして使用されます。複数のアプリケーションが同じミューテックスオブジェクトにアクセスできるため、名前付きミューテックスオブジェクトはプロセス間同期に使用されます。

mutexクラスは、メモリ、ファイルハンドル、ネットワーク接続などの共有リソースを、複数のスレッドまたはプロセスによる同時アクセスから保護するように設計されています。 lockステートメントで使用され、リソースへのシリアルアクセスを提供し、コードの重要なセクション内で相互排除を保証します。同期がない場合に発生する可能性のある予測できないデータ破損を防ぐのに役立ちます。多くの場合、一度にアプリケーションの単一インスタンスをチェックするために使用されます。

ミューテックスは、相互排他的な省略形です。

Microsoft AzureとMicrosoft Cloudの紹介|このガイドを通して、クラウドコンピューティングとは何か、Microsoft Azureを使用してクラウドからビジネスを移行および実行する方法を学習します。

TechopediaはMutexを説明します

Mutexは、複数のスレッドに共有リソースへのアクセスを提供します。そのため、別のスレッドによって既に取得されているmutexを取得する必要がある2番目のスレッドは、最初のスレッドがmutexを解放する瞬間まで待機する必要があります。スレッドがすでに保持しているmutexを取得しようとしないように注意する必要があります。これにより、デッドロックが発生する可能性があります。

たとえば、mutexを使用して、マルチスレッド環境で読み取りまたは変更が必要なファイルへの排他的アクセスを提供できます。

Mutexクラスには、名前、所有権情報、名前付きミューテックスに適用されるアクセス制御セキュリティなど、初期化中に新しいミューテックスオブジェクトのキーパラメータを指定するために使用できるコンストラクタがあります。

ロックステートメントは単一プロセス内のスレッドを同期するために使用できますが、mutexはプロセスの境界を越えて使用されます。

ミューテックスクラスはWin32コンストラクトのラッパーであるため、パフォーマンスへの影響をもたらす相互運用トランジションが必要です。そのため、プロセスの境界を越えた同期などの理由で必要とされない限り、これは良い選択ではありません。
この定義はC#のconで書かれています