Seit 4D v11 verwenden sowohl der Datenbankserver als auch der SQL Server präemptives Multi-Threading. Ab 4D v13 verwendet der Web Server im statischen Modus ebenfalls präemptive Prozesse. Mit v15 R5 kann nun auch die 4D Sprache in präemptiven Prozessen ausgeführt werden.
Ihre kompilierten 4D Anwendungen können nun die Vorteile von Multi-Core Computern voll ausnutzen, so dass sie schneller ausgeführt werden und mehr angeschlossene Benutzer unterstützen können.
Was ist der Unterschied zwischen kooperativem und präemptivem Modus?
Der kooperative Modus wird von den Prozessen geplant und kann nur einen Kern verwenden. Der präemptive Modus wird vom Betriebssystem geplant und kann alle verfügbaren Kerne nutzen.
Hier ein Beispiel mit zwei Prozessen und zwei Kernen:
Wie kann ich eine Methode in präemptiven Prozessen ausführen?
Standardmäßig führt 4D alle Projektmethoden im kooperativen Modus aus. Wenn Sie die Vorteile des präemptiven Modus nutzen möchten, müssen Sie zunächst explizit alle Methoden deklarieren, die im präemptiven Modus gestartet werden sollen.
Dazu gibt es eine neue Eigenschaft „Ausführungsmodus“ in den Methodeneigenschaften. Sie haben 3 Optionen:
- Kann im präemptiven Modus ausgeführt werden
- Kann nicht im präemptiven Modus ausgeführt werden
- Gleichgültig
Wenn Sie Ihre Datenbank mit 4D v15 R5 öffnen, werden alle Ihre Methoden auf Indifferent gesetzt.
Wie kann ich überprüfen, ob mein Code in präemptiven Prozessen ausgeführt werden kann?
Schreiben Sie einfach Ihren Code und der Compiler prüft, ob die Methode kompatibel oder inkompatibel ist.
Um ein Beispiel zu sehen, schauen Sie sich dieses Video an:
Wenn Sie alle vorherigen Demonstrationen selbst nachvollziehen möchten, empfehlen wir Ihnen, die folgende Beispieldatenbank herunterzuladen.
Woher weiß ich, welche Befehle in präemptiven Prozessen ausgeführt werden können?
Die 4D Befehle, die in präemptiven Prozessen ausgeführt werden können, sind in der Dokumentation durch ein neues Symbol gekennzeichnet. Dieses Symbol befindet sich oben rechts.
In v15 R5 ist ein erster Satz von Befehlen verfügbar. Wir werden weitere Befehle in den folgenden R-Versionen hinzufügen.
Wir schlagen vor, dass Sie die folgende HDI herunterladen. Wir haben den Befehl „Befehlsname“ aktualisiert, damit Sie herausfinden können, ob der Befehl im präemptiven Modus ausgeführt werden kann oder nicht.
Weitere Details finden Sie im 4D v15 R5 Upgrade Handbuch.