4D v16.3Einführung in Prozesse |
||
|
4D v16.3
Einführung in Prozesse
Einführung in Prozesse
Multitasking in 4D bedeutet, dass unterschiedliche Operationen der Datenbank gleichzeitig ausgeführt werden können. Diese Operationen werden Prozesse genannt. Multiple Prozesse sind wie mehrere Benutzer am gleichen Rechner, wobei jeder seine eigene Aufgabe ausführt. Das bedeutet, dass sich jede Methode als ein anderes Task der Datenbank ausführen lässt. Dieses Kapitel behandelt folgende Themen:
Hinweis: Dieses Kapitel beschreibt nicht die Serverprozeduren. Informationen dazu finden Sie im Handbuch 4D Server im Abschnitt Serverprozeduren. Es gibt verschiedene Wege, einen neuen Prozess zu erstellen:
Es gibt folgende Arten, einen Prozess zu löschen:
Ein Prozess kann einen anderen Prozess erstellen. Prozesse sind nicht hierarchisch organisiert — alle Prozesse sind gleich, unabhängig von welchem Prozess aus sie erstellt wurden. Hat ein Hauptprozess einen Unterprozess erstellt, kann der Unterprozess weiterlaufen, auch wenn der Hauptprozess nicht mehr ausgeführt wird. Jeder Prozess enthält folgende Elementarten:
Hinweise:
Hinweis: Diese Beschreibung gilt für Datenelemente mit globalen Prozessen. Weitere Informationen dazu finden Sie im später aufgeführten Abschnitt Globale und lokale Prozesse.
Sie erstellen Benutzerprozesse, um bestimmte Tasks auszuführen. Diese teilen sich die Prozesszeit mit den Kernel-Prozessen. Web-Verbindungsprozesse sind zum Beispiel Benutzerprozesse. Das 4D Programm erstellt auch Prozesse für seine eigenen Zwecke. 4D erstellt und verwaltet folgende Prozesse:
Ab 4D v15 R5 64 bits können Sie in 4D im kompililierten Modus preemptive Benutzerprozesse ausführen. In bisherigen Versionen waren nur kooperative Benutzerprozesse verfügbar. Beim preemptive Modus (unterbrechend) ist der Prozess einer CPU zugeordnet. Die Prozessverwaltung wird dann an das System delegiert, das jede CPU einem multi-core Rechner einzeln zuweisen kann. Beim kooperativen Modus (nicht-unterbrechend) werden alle Prozesse vom übergeordneten Applikation Thread verwaltet und nutzen dieselbe CPU gemeinsam, und das auch auf einem multi-core Rechner. Durch den preemptive Modus wird die globale Performance der Applikation erhöht, insbesondere auf multi-core Rechnern, da mehrfache Prozesse (Threads) real simultan laufen können. Der jeweilige Gewinn hängt jedoch von den ausgeführten Operationen ab. Außerdem gelten für Methoden, die preemptiv nutzbar sein sollen, spezifische Einschränkungen. Denn im preemptive Modus ist jeder Thread von den anderen unabhängig und wird nicht direkt von der Applikation verwaltet. Zusätzlich ist die preemptive Ausführung nur in ganz bestimmten Kontexten verfügbar. Weitere Informationen zu preemptive Prozessen finden Sie im Abschnitt Preemptive 4D Prozesse. Prozesse können sowohl global als auch lokal sein. Standardmäßig sind alle Prozesse global. Globale Prozesse können jede Operation ausführen, inkl. auf Daten zugreifen und Daten steuern. In den meisten Fällen verwenden Sie globale Prozesse. Lokale Prozesse eignen sich nur für Operationen, die nicht auf Daten zugreifen. Sie verwenden diese beispielsweise für eine Methode zur Ereignisverwaltung oder zum Steuern von Oberflächenelementen, wie z.B. das Palettenfenster. Der Name des lokalen Prozesses muss mit einem Dollarzeichen beginnen ($). Warnung: Versuchen Sie, von einem lokalen Prozess aus auf Daten zuzugreifen, geschieht das über den Hauptprozess. Das kann Konflikte mit den Operationen geben, die innerhalb dieses Prozesses ausgeführt werden. 4D Server: Setzen Sie auf der Arbeitsstation lokale Prozesse ein für Operationen ohne Zugriff auf Daten. So bleibt mehr Prozesszeit für Server-intensive Tasks übrig. Ein Datensatz ist gesperrt, wenn ein anderer Prozess ihn erfolgreich zum Bearbeiten geladen hat. Ein gesperrter Datensatz kann von einem anderen Prozess geladen, jedoch nicht geändert werden. Der Datensatz wird nur in dem Prozess freigegeben, in welchem er bearbeitet wurde. Ein Datensatz ist nur ungesperrt ladbar, wenn die entsprechende Tabelle im Lese/Schreibmodus ist. Weitere Informationen dazu finden Sie im Abschnitt Überblick zu Datensatz sperren.
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D
GESCHICHTE
ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |