API:System.Threading.TThreadPool.TBaseWorkerThread

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

TBaseWorkerThread = class(TThread)

C++

class PASCALIMPLEMENTATION TBaseWorkerThread : public System::Classes::TThread

プロパティ

種類 可視性 ソース ユニット
class protected
System.Threading.pas
System.Threading.hpp
System.Threading TThreadPool

説明

TThread は、アプリケーション内で別の実行スレッドを作成できるようにする抽象クラスです。

System.Threading.TThreadPool.TBaseWorkerThread は System.Classes.TThread を継承しています。以下の内容はすべて System.Classes.TThread を参照しています。


TThread は、アプリケーション内で別の実行スレッドを作成できるようにする抽象クラスです。

マルチスレッド アプリケーションで実行スレッドを表す、TThread の下位オブジェクトを作成します。 TThread の下位オブジェクトのそれぞれの新しいインスタンスが、新しい実行スレッドとなります。 TThread の派生クラスの複数インスタンスによって、アプリケーションがマルチスレッド化されます。

実行中のアプリケーションは、メモリにロードされて実行可能な状態になっています。 この時点でアプリケーションは、プログラムのためのデータやコード、その他システム リソースを保持した、1 つまたは複数のスレッドから構成されるプロセスになります。 スレッドはアプリケーション処理の一部を実行し、オペレーティング システムから CPU 時間の割り当てを受けます。 処理に関係するすべてのスレッドは同じアドレス空間を共有し、プロセスのグローバル変数にアクセスすることができます。

スレッドを使用すると、次の機能により、アプリケーションの処理性能を向上させることができます:

  • 複数の通信デバイスからの入力の管理。
  • 優先度の異なるタスクの判別。 たとえば、優先度の高いスレッドは、時間的緊急度の高いタスクを処理し、優先度の低いスレッドは他の処理を実行します。

スレッドを使用するときの問題および回避策は以下のとおりです:

  • 多すぎるスレッドの追跡を継続すると、CPU 時間を消費する。シングル プロセッサ システム上において、1 プロセス当たり推奨アクティブ スレッド数は 16 です。
  • 複数のスレッドが同じリソースを更新する場合、競合を避けるため、同期がとられなければならない。
  • オブジェクトにアクセスし、フォームを更新するメソッドのほとんどは、

メイン スレッド内からのみ呼び出されるか、TMultiReadExclusiveWriteSynchronizer などの同期オブジェクトを使用しなければならない。

スレッド オブジェクトの Execute メソッドを定義して、 そのスレッドが実行された際に、遂行するべきコードを記述します。



関連項目

コード例とサンプル