System.Classes.TThread
Delphi
TThread = class
C++
class PASCALIMPLEMENTATION TThread : public System::TObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | System.Classes.pas System.Classes.hpp |
System.Classes | System.Classes |
説明
TThread は、アプリケーション内で別の実行スレッドを作成できるようにする抽象クラスです。
マルチスレッド アプリケーションで実行スレッドを表す、TThread の下位オブジェクトを作成します。 TThread の下位オブジェクトのそれぞれの新しいインスタンスが、新しい実行スレッドとなります。 TThread の派生クラスの複数インスタンスによって、アプリケーションがマルチスレッド化されます。
実行中のアプリケーションは、メモリにロードされて実行可能な状態になっています。 この時点でアプリケーションは、プログラムのためのデータやコード、その他システム リソースを保持した、1 つまたは複数のスレッドから構成されるプロセスになります。 スレッドはアプリケーション処理の一部を実行し、オペレーティング システムから CPU 時間の割り当てを受けます。 処理に関係するすべてのスレッドは同じアドレス空間を共有し、プロセスのグローバル変数にアクセスすることができます。
スレッドを使用すると、次の機能により、アプリケーションの処理性能を向上させることができます:
- 複数の通信デバイスからの入力の管理。
- 優先度の異なるタスクの判別。 たとえば、優先度の高いスレッドは、時間的緊急度の高いタスクを処理し、優先度の低いスレッドは他の処理を実行します。
スレッドを使用するときの問題および回避策は以下のとおりです:
- 多すぎるスレッドの追跡を継続すると、CPU 時間を消費する。シングル プロセッサ システム上において、1 プロセス当たり推奨アクティブ スレッド数は 16 です。
- 複数のスレッドが同じリソースを更新する場合、競合を避けるため、同期がとられなければならない。
- オブジェクトにアクセスし、フォームを更新するメソッドのほとんどは、
メイン スレッド内からのみ呼び出されるか、TMultiReadExclusiveWriteSynchronizer などの同期オブジェクトを使用しなければならない。
スレッド オブジェクトの Execute メソッドを定義して、 そのスレッドが実行された際に、遂行するべきコードを記述します。
関連項目
- Threads デモの説明については、「デバッガでのスレッドの凍結および凍結解除」 を参照してください。