マルチスレッド同期メカニズムには何が含まれますか?
マルチスレッド同期メカニズムには次のものが含まれます: 1. 「排他的所有」を実現するために使用されるクリティカル セクション (クリティカル セクション); 2. 限られたリソースを追跡するために使用されるセマフォ; 3. さまざまな環境で使用できるミューテックススレッド スレッドが異なるプロセスに属している場合でも、スレッド間で「排他的所有」を実現するため。 4. イベント。通常はオーバーラップ I/O に使用されるか、カスタム同期オブジェクトの設計に使用されます。
#この記事の動作環境: Windows 7 システム、Dell G3 コンピューター。
マルチスレッド同期メカニズムには次のものが含まれます:
1、クリティカル セクション
クリティカル セクション (クリティカル セクション) は、次の目的で使用されます。 「独占占有」を実現します。適用範囲は単一プロセスのスレッド間です。それは:
ローカル オブジェクトであり、コア オブジェクトではありません。
高速かつ効率的。
複数のクリティカル セクションを同時に待つことはできません。
スレッドによって放棄されたかどうかを検出できません。
はスレッド間の相互排他を実現できますが、同期を実現するために使用することはできません。
2、セマフォ
セマフォは、限られたリソースを追跡するために使用されます。それは:
- #コア オブジェクトです。
- 所有者がいません。
- には名前を付けることができるため、他のプロセスで開くことができます。
- どのスレッドでも解放できます。
- スレッド間の排他とスレッド間の同期を実現できます。
- プロセス間で使用すると、セマフォを所有するスレッドが予期せず終了しても、他のプロセスには通知されません。
Mutex
- #コア オブジェクトです。
- ミューテックスを所有するスレッドが終了すると、「放棄された」エラー メッセージが生成されます。
- i には名前を付けることができるため、他のプロセスによって開くことができます。
- は、それを所有するスレッドによってのみ解放できます。
- プロセス間で使用すると、ミューテックスを所有するプロセスが予期せず終了すると、他のプロセスは
- WAIT_ABANDOEND
メッセージを受け取ります。
4、
Event オブジェクトは、通常、オーバーラップ I/O またはいくつかのカスタム同期オブジェクトを設計するために使用されます。それは:
- コア オブジェクトです。
- は、スレッドの相互排他と同期を実現するために使用されます。
- には名前を付けることができるため、他のプロセスで開くことができます。
- プロセス間で使用すると、セマフォを所有するスレッドが予期せず終了しても、他のプロセスには通知されません。
- 注: クリティカル セクションとミューテックスは両方とも「スレッド所有権」の概念を持っているため、スレッド間の同期を実現するために使用することはできません。相互排他を実装するためにのみ使用できます。その理由は、クリティカル セクションまたはミューテックスを作成するスレッドは、
、SetEvent()
を待たずに無条件で保護されたプログラム セクションに入ることができるためです。これは、この権限を持っているためです。さらに、ミューテックスは「放棄」操作を非常にうまく処理できます。スレッドがオブジェクトを解放せずに予期せず終了した場合、他のスレッドは WAIT_ABANDONED_0
を待つことができます。しかし、イベントもセマフォもそれを行うことはできません。 イベントとセマフォは、スレッドとプロセス間の相互排他と同期を実現できます。
使用効率の観点から見ると、クリティカル セクションはカーネル オブジェクトではないため最も効率が高く、他の 3 つはコア オブジェクトであり、オペレーティング システムの助けを借りて実装する必要があるため、効率は比較的低いです。
ただし、プロセス間で使用したい場合は、やはりミューテックス、イベント オブジェクト、セマフォを使用する必要があります。
要するに: 設計するときは、まずグローバル変数を使用しないようにしてください。使用しない場合は、Inter...() 関数、次にクリティカル セクション オブジェクト、最後にイベント、ミューテックス、シグナルの使用を検討してください。
以上がマルチスレッド同期メカニズムには何が含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









