> Tech > RPG et les threads

RPG et les threads

Tech - Par Barbara Morris - Publié le 08 juin 2011
email

Vous envisagez des applications mutithread ? Lisez d’abord ceci.

La plupart des programmeurs RPG n'auront jamais à utiliser des threads multiples. Et même ceux qui en perçoivent le besoin y renonceront, les jugeant trop complexes. À ce stade, vous vous attendez peut-être à ce que je dise : « Je ne veux pas vous effrayer ». C'est pourtant la vérité : je ne veux pas vous faire peur. Il est facile de coder des threads multiples, mais il est extrêmement difficile, voire impossible de bien les utiliser. Qui plus est, les threads multiples sont difficiles à tester parce qu'ils se comportent parfois un peu différemment à chaque exécution. Cela étant dit, nous allons explorer les nouveautés de la 6.1 pour la programmation multithread en RPG.

Donc, lisez ceci mais ne soyez pas trop impatients de mettre en pratique ces nouvelles techniques. Si vous décidez d'introduire le multithread dans vos applications, vous devez lire tout le contenu de la section Threads de l’Information Center, et lire tous les livres que vous trouverez sur la programmation multithread. Puis, … les relire.

RPG et les threads

Le mot thread (fil ou file) est la forme raccourcie de l’expression thread d’exécution. Un thread d’exécution est la suite d’instructions machine que le système exécute quand il conduit les programmes et les procédures de votre job. S’il y a deux threads d’exécution dans le même job, le système exécute deux séquences d’instructions machine simultanément. Les deux threads peuvent être en train d’exécuter différents programmes, différentes procédures dans le même module, la même procédure, voire la même instruction. Quand une application utilise plus d’un thread, c’est une application multithread.

RPG utilise des threads depuis la version 4.4, avec l’introduction de THREAD(*SERIALIZE). Le coding de ce mot-clé a sérialisé l’accès au module. Autrement dit, un seul thread à la fois pouvait s’exécuter dans le module. La 4.4 permettait aux programmes RPG de participer à une application multithread, mais souvent en ralentissant les performances de celle-ci.

À partir de la 6.1, RPG peut participer entièrement à une application multithread tout en bénéficiant des performances de l’exécution multithread. Le mot-clé READ(*CONCURRENT) permet à plusieurs threads de tourner dans un module en même temps. Cependant, THREAD(*CONCURRENT) ne remplace pas THREAD(*SERIALIZE). En fait, les deux modes ont leur utilité. (Pour en savoir plus, lire l’information sur les mots-clés associés aux threads dans le ILE RPG Reference.)

La suite de votre dossier RPG et Threads IBMi :

Threads multiples vs. jobs multiples
https://www.itpro.fr/threads-multiples-jobs-multiples/

Stockage statique
https://www.itpro.fr/stockage-statique/

Téléchargez cette ressource

Guide de Reporting Microsoft 365 & Microsoft Exchange

Guide de Reporting Microsoft 365 & Microsoft Exchange

Comment bénéficier d’une vision unifiée de vos messageries, mieux protéger vos données sensibles, vous conformer plus aisément aux contraintes réglementaires et réduire votre empreinte carbone ? Découvrez la solution de reporting complet de l’utilisation de Microsoft Exchange, en mode on-premise ou dans le Cloud.

Tech - Par Barbara Morris - Publié le 08 juin 2011