相互排除(Mutex)

著者: Lewis Jackson
作成日: 8 5月 2021
更新日: 9 5月 2024
Anonim
Go (Golang) sync.Mutex Tutorial
ビデオ: Go (Golang) sync.Mutex Tutorial

コンテンツ

定義-相互排除(Mutex)とはどういう意味ですか?

相互排除(ミューテックス)は、共有リソースへの同時アクセスを防ぐプログラムオブジェクトです。この概念は、プロセスまたはスレッドが共有リソースにアクセスするコードの一部であるクリティカルセクションを使用した同時プログラミングで使用されます。一度に1つのスレッドのみがミューテックスを所有しているため、プログラムの起動時に一意の名前を持つミューテックスが作成されます。スレッドがリソースを保持する場合、リソースの同時アクセスを防ぐために、他のスレッドからミューテックスをロックする必要があります。リソースを解放すると、スレッドはミューテックスのロックを解除します。


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

Techopediaは相互排除(Mutex)について説明します

ミューテックスは、2つのスレッドが同じデータを同時に処理するときに見えてきます。ロックとして機能し、最も基本的な同期ツールです。スレッドがミューテックスを取得しようとすると、使用可能な場合はミューテックスを取得します。それ以外の場合、スレッドはスリープ状態に設定されます。相互排除により、キューイングおよびconスイッチを使用して、待ち時間とビジー待機が削減されます。 Mutexは、ハードウェアレベルとソフトウェアレベルの両方で適用できます。

カーネルレベルでミューテックスを実施し、共有データ構造の破損を防ぐには、最小数の命令で割り込みを無効にすることが最善の方法です。複数のプロセッサが同じメモリを共有している場合、可用性に基づいてリソースの取得を有効または無効にするフラグが設定されます。 busy-waitメカニズムは、ソフトウェア領域でミューテックスを強制します。これには、Dekkersアルゴリズム、白黒ベーカリーアルゴリズム、Szymanskisアルゴリズム、Petersonsアルゴリズム、Lamportsベーカリーアルゴリズムなどのアルゴリズムが備わっています。

相互排他的なリーダーと読み取り/書き込みミューテックスクラスコードを定義して、ミューテックスを効率的に実装できます。