Processus préemptifs pour le langage 4D

Traduit automatiquement de Deepl

Depuis 4D v11, le serveur de base de données et le serveur SQL utilisent tous deux le multithreading préemptif. À partir de 4D v13, le serveur Web en mode statique utilise également le préemption. Maintenant, avec la v15 R5, le langage 4D peut également être exécuté dans des processus préemptifs.

Vos applications compilées 4D pourront désormais tirer pleinement parti des ordinateurs multi-cœurs afin que leur exécution soit plus rapide et qu’elles puissent prendre en charge davantage d’utilisateurs connectés.

Full advantage of multi-cores

Quelle est la différence entre le mode coopératif et le mode préemptif ?

Le mode coopératif est planifié par les processus et ne peut utiliser qu’un seul cœur. Le mode préemptif est planifié par le système d’exploitation et peut utiliser tous les cœurs disponibles.

Voici un exemple avec deux processus et deux cœurs :

Cooperative vs Preemptive

Comment exécuter une méthode dans les processus préemptifs ?

Par défaut, 4D exécute toutes les méthodes du projet en mode coopératif. Si vous souhaitez bénéficier de la fonctionnalité de mode préemptif, la première étape consiste à déclarer explicitement toutes les méthodes que vous souhaitez voir démarrer en mode préemptif.

Pour ce faire, il existe une nouvelle propriété « Execution mode » dans les propriétés de la méthode. Vous avez 3 options :

  • Peut être exécuté en mode préemptif
  • Ne peut pas être exécuté en mode préemptif
  • Indifférent

Lorsque vous ouvrez votre base de données avec 4D v15 R5, toutes vos méthodes seront en mode Indifférent.

Comment puis-je vérifier que mon code peut être exécuté en mode préemptif ?

Il suffit d’écrire votre code puis le compilateur vérifie si la méthode est compatible ou incompatible.

Pour voir un exemple, regardez cette vidéo :

Si vous souhaitez reproduire vous-même toutes les démonstrations précédentes, nous vous proposons de télécharger la base de données d’exemples suivante.

Base de données d’exemple

Comment puis-je savoir quelles commandes peuvent être exécutées dans des processus préemptifs ?

Les commandes 4D qui peuvent être exécutées dans des processus préemptifs sont indiquées dans la documentation par une nouvelle icône. Cette icône se trouve en haut à droite.

New icon in documentation

Dans la v15 R5, une première série de commandes est disponible. Nous ajouterons d’autres commandes dans les versions R suivantes.

Nous vous suggérons de télécharger le HDI suivant. Nous avons mis à jour la commande « Nom de la commande » afin que vous puissiez savoir si la commande peut être exécutée en mode préemptif ou non.

Exemple de base de données

Pour plus de détails, veuillez consulter le manuel de mise à niveau de 4D v15 R5.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.