4D v16.3Introduction aux process |
||
|
4D v16.3
Introduction aux process
Introduction aux process
Le multi-tâche dans 4D représente la possibilité d'exécuter simultanément plusieurs opérations de base de données distinctes. Ces opérations sont appelées des process. Créer de multiples process équivaut à avoir plusieurs utilisateurs travaillant sur le même ordinateur, chacun effectuant sa tâche. Cela signifie principalement que chaque méthode peut être exécutée comme une tâche de base de données distincte. Cette section traite des sujets suivants :
Note : Cette section ne traite pas des procédures stockées. Pour cela, reportez-vous à la section Procédures stockées dans le manuel de référence de 4D Server. Il existe plusieurs manières de créer un nouveau process :
Un process peut être supprimé dans les conditions suivantes. Les deux premières sont automatiques :
Un process peut créer un autre process. Les process ne sont pas organisés hiérarchiquement. Tous les process sont égaux, et cela indépendamment du process à partir duquel ils ont été créés. Une fois qu'un process "parent" a créé un process "enfant", le process enfant pourra se poursuivre que le process parent soit toujours en cours d'exécution ou non. Chaque process contient certains éléments spécifiques. Il y a trois types d'éléments bien distincts dans un process :
Les éléments d'interface sont les suivants :
Notes :
Les éléments de données se réfèrent aux données de la base. Ce sont les suivants :
Note : Cette description des éléments de données est valide si les process sont des process globaux. Par défaut, tous les process sont globaux. Reportez-vous plus bas au paragraphe traitant de ce point. Les éléments de langage d'un process sont tous les éléments liés à la programmation dans 4D.
Les process utilisateur sont des process que vous créez pour effectuer certaines tâches. Ils partagent le temps machine avec les process principaux. Par exemple, les process de connexion Web sont des process utilisateur. L'application 4D crée également des process pour ses propres besoins. Voici les principaux process créés et gérés par 4D :
A compter de 4D v15 R5 64 bits, 4D vous permet de créer des process utilisateur préemptifs en mode compilé. Dans les versions précédentes, seuls les process utilisateur coopératifs étaient disponibles. Lorsqu'il est exécuté en mode préemptif, un process est dédié à un CPU (processeur). La gestion du process est alors déléguée au système, qui peut allouer chaque CPU séparément sur une machine multi-coeurs. Lorsqu'ils sont exécutés en mode coopératif, tous les process sont gérés par le thread (process système) de l'application parente et partagent le même CPU, même sur une machine multi-coeurs. Par conséquent, en mode préemptif, les performance globales de l'application sont améliorées, particulièrement avec des machines multi-coeurs, car de multiples threads peuvent véritablement être exécutés simultanément. Les gains effectifs dépendent cependant de la nature des opérations exécutées. En contrepartie, puisqu'en mode préemptif chaque thread est indépendant des autres et non géré directement par l'application, des conditions spécifiques sont à respecter dans les méthodes qui doivent être exécutées en préemptif. De plus, le mode préemptif est disponible uniquement dans certains contextes. La gestion des process préemptifs est détaillée dans la section Process 4D préemptifs. La portée (l'aire d'action) des process peut être globale ou locale. Par défaut, tous les process sont globaux. Les process globaux peuvent effectuer n'importe quelle opération, y compris accéder aux données et les manipuler. Dans la plupart des cas, vous utiliserez des process globaux. Les process locaux ne doivent être utilisés que pour des opérations qui n'accèdent pas aux données. Par exemple, vous pouvez utiliser un process local pour contrôler les éléments d'interface comme les palettes flottantes ou exécuter une méthode de gestion d'événements. Vous spécifiez qu'un process est local via son nom. Le nom d'un process local doit commencer par le symbole dollar ($). Attention : Si vous tentez d'accéder aux données à partir d'un process local, vous accédez aux données par l'intermédiaire du Process principal, et prenez donc le risque d'entrer en conflit avec les opérations effectuées dans ce process. 4D Server : Avec 4D Server, l'utilisation de process locaux côté client, pour des opérations qui ne nécessitent pas d'accès aux données, permet d'allouer davantage de temps machine à des tâches qui sollicitent intensivement le serveur. Un enregistrement est verrouillé pour un process lorsqu'un autre process l'a déjà chargé pour modification. Un enregistrement verrouillé peut être chargé par un autre process mais ne peut pas être modifié. L'enregistrement est déverrouillé seulement dans le process dans lequel l'enregistrement est modifié. Une table doit être en mode lecture/écriture pour qu'un enregistrement puisse être chargé non verrouillé. Pour plus d'informations, reportez-vous à la section Verrouillage d'enregistrements.
Voir aussi
|
PROPRIÉTÉS
Produit : 4D
HISTORIQUE
UTILISATION DE L'ARTICLE
4D - Langage ( 4D v16) |