4D v16.3プロセス |
||
|
4D v16.3
プロセス
プロセス
4Dのマルチタスク機能を使用すれば、個別のデータベース処理を同時に実行することができます。これらの処理をプロセスと呼びます。 マルチプロセスは、1つのコンピュータ上でのマルチユーザのようなものです。それぞれの処理は個別のタスクです。つまりそれぞれのメソッドを個別のデータベースタスクとして実行することができるということです。
Note: この節ではストアドプロシージャを説明していません。この点については4D Server Referenceマニュアルのストアドプロシージャの節を参照してください。 新規プロセスを作成するにはいくつかの方法があります:
プロセスは以下の条件でクリアできます。最初の2つは自動的に行われます:
プ ロセスは別のプロセスを作成することができます。プロセスは階層構造にはなっていません。どのプロセスから作成されようと、すべてのプロセスは同等です。 いったん、“親”プロセスが“子”プロセスを作成すると、親プロセスの実行状況に関係なく、子プロセスは処理を続行します。 各プロセスには個々の要素があります。プロセスには以下の3種類の要素があります:
インタフェース要素には以下のものがあります:
データ要素は、データベースが使用するデータを参照します。以下のようなデータ要素があります:
Note: データ要素に関するこの記述は、プロセスがグローバルスコープの場合に有効です。デフォルトですべてのプロセスはグローバルです。後述のグローバルプロセスとローカルプロセスの段落を参照してください。 プロセスのランゲージ要素は、4Dでのプログラミングに関連した要素です。
ユーザプロセスは、特定のタスクを行うために開発者が作成するプロセスです。ユーザプロセスはカーネルプロセスと処理時間を共有します。例えばWeb接続プロセスはユーザプロセスです。 4Dアプリケーションは自身が必要とするプロセスも作成します。以下のプロセスは4Dが作成し管理します:
4D v15 R5 64bit版以降、4Dではコンパイルモードにおいてプリエンプティブなユーザープロセスを作成する事ができるようになりました。以前のバージョンでは、コオペラティブなユーザープロセスのみが利用可能でした。 プリエンプティブモードで実行された場合、プロセスはCPUへと割り当てられます。プロセス管理はその後システムに委託され、システムはマルチコアマシン上において、各CPUを個別にプロセスへと割り当てる事ができるようになります。コオペラティブモードで実行された場合、全てのプロセスは親アプリケーションスレッドによって管理され、例えマルチコアマシン上であったとしても同じCPUを共有します。 結果として、プリエンプティブモードでは、アプリケーションの全体的なパフォーマンスが向上します。特にマルチコアマシン上においては、複数のプロセス(スレッド)が文字通り同時に実行可能なため、顕著です。しかしながら、実際の早さの差は実行されるオペレーションによって異なります。プリエンプティブモードではそれぞれのスレッドは他のスレッドから独立していて、アプリケーションによって直接管理されている訳ではないため、プリエンプティブな使用に合致させたいメソッドに対しては、特定の制約が課せられる事になります。 プリエンプティブプロセスの管理については、プリエンプティブ4Dプロセスの章で説明があります。 プロセスのスコープにはローカルとグローバルがあります。デフォルトですべてのプロセスはグローバルです。 グローバルプロセスはデータへのアクセスや操作を含め、あらゆる処理を実行できます。ほとんどの場合グローバルプロセスを使用します。 ローカルプロセスは、データアクセスを必要としない処理の場合にだけ使用することをお勧めします。例えば、イベント処理メソッドを実行、またはフローティングウィンドウ等のインタフェース要素を制御するためにローカルプロセスを使用します。 名前によってプロセスがローカルであることを指定します。ローカルプロセス名は、先頭にドル記号 ($) を付ける必要があります。 警告: ローカルプロセスでデータアクセスを行った場合、メインプロセスでアクセスすることになり、そのプロセス内で実行される処理との間でコンフリクトが起きるおそれがあります。 4D Server: データアクセスを行わない処理に対し、クライアント側でローカルプロセスを使用すると、サーバの負荷が軽減されます。
参照
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |