Data.DBXPlatform.TDBXSemaphore

提供:RAD Studio API Documentation

TDBXSemaphoreSystem.SyncObjs.TSemaphoreSystem.SyncObjs.THandleObjectSystem.SyncObjs.TSynchroObjectSystem.TObject

Delphi

TDBXSemaphore = class(TSemaphore)

C++

class PASCALIMPLEMENTATION TDBXSemaphore : public System::Syncobjs::TSemaphore

プロパティ

種類 可視性 ソース ユニット
class public
Data.DBXPlatform.pas
Data.DBXPlatform.hpp
Data.DBXPlatform Data.DBXPlatform

説明

TSemaphore は、共通リソースの共有に関して、スレッドの並行実行を管理する同期プリミティブ型です。 {{#multireplace:Data.DBXPlatform.TDBXSemaphore|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} は {{#multireplace:System.SyncObjs.TSemaphore|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} を継承しています。以下の内容はすべて {{#multireplace:System.SyncObjs.TSemaphore|H21=!|H25=%|H28=(|H29=)|H2A=*|H2B=+|H2F=/|H3C=<|H3D==|H3E=>|H5B=[|H5D=]|H5E=^|H7C=|}} を参照しています。

TSemaphore は、共通リソースの共有に関して、スレッドの並行実行を管理する同期プリミティブ型です。

TSemaphore は、共有リソースに安全にアクセスする必要のあるマルチスレッド アプリケーションで使用します。

セマフォごとに 1 つのカウンタ変数が関連付けられています。この変数は、現在使われていない共有リソースのユニット数を持っています。このカウンタは、スレッドがそのセマフォをロックすると数が減り、スレッドがセマフォを解放すると数が増えます。

スレッドがセマフォをロックしようとしたときにカウンタの値が nil であれば、スレッドはセマフォの待ち行列に追加されます。カウンタの値がゼロでなくなればすぐに、セマフォ待ち行列の先頭にいるスレッドがセマフォをロックします。

TSemaphore クラスのインスタンスを作成するときに、使われていない共有リソースの最初のユニット数を指定することができます。これが実質的にセマフォ カウンタ変数の初期値となります。

その他に、利用可能な共有リソースのユニット数は、TSemaphore クラス コンストラクタの AMaximumCount パラメータで指定することができます。

メモ:  利用可能な共有リソースのユニット数が 1 である場合、TSemaphore はバイナリ セマフォと呼ばれ、基本的に TMutex と同等のものになります。

関連項目