4D v11以降、データベースサーバーとSQLサーバーは共にプリエンプティブなマルチスレッディングを使用します。4D v13 からは、Static モードの Web Server もプリエンプティブを使用しています。v15 R5では、4D言語もプリエンプティブ・プロセスで実行できるようになりました。
あなたの4Dコンパイルされたアプリケーションは、マルチコアコンピュータをフルに活用できるようになり、実行速度が向上し、より多くの接続ユーザーをサポートできるようになりました。
CooperativeモードとPreemptiveモードの違いは何ですか?
Cooperativeモードは、プロセスによってスケジューリングされ、1つのコアしか使用できません。プリエンプティブモードは、OSがスケジューリングし、利用可能なすべてのコアを使用できる。
ここでは、2プロセス、2コアの例を示します。
プリエンプティブ・プロセスでメソッドを実行するには?
デフォルトでは、4Dはすべてのプロジェクトメソッドを協調モードで実行します。プリエンプティブモードの機能を利用したい場合、最初のステップは、プリエンプティブモードで起動させたいすべてのメソッドを明示的に宣言することです。
そのために、メソッドプロパティに「実行モード」プロパティが追加されています。3つのオプションがあります。
- プリエンプティブ・モードで実行可能
- プリエンプティブモードで実行できない
- 無関心
4D v15 R5でデータベースを開くと、すべてのメソッドがIndifferentに設定されています。
自分のコードがプリエンプティブ・プロセスで実行できるかどうか、どのように確認しますか?
コードを書くだけで、コンパイラは、そのメソッドが互換性があるかないかをチェックします。
このビデオはその一例です。
もし、これまでのデモをすべて自分で再現したい場合は、以下のサンプルデータベースをダウンロードすることをお勧めします。
プリエンプティブ・プロセスで実行可能なコマンドを知るには?
プリエンプティブ・プロセスで実行可能な4Dコマンドは、ドキュメントに新しいアイコンで表示されています。このアイコンは、右上にあります。
v15 R5では、最初のコマンドセットが利用可能です。次のR-releaseでは、さらに多くのコマンドを追加する予定です。
以下のHDIをダウンロードすることをお勧めします。コマンド名」コマンドを更新し、そのコマンドがプリエンプティブモードで実行可能かどうかを確認できるようにしました。
詳細は、4D v15 R5 Upgradeのマニュアルをご覧ください。