vendredi, 19 avril 2024

La concurrence Java pourrait être sur le point de devenir plus facile

Crédit : Dreamstime

Les programmes multithreads pourraient être prêts à devenir plus faciles pour les développeurs Java sous un stratégie actuellement en incubation dans le quartier OpenJDK.

La proposition de concurrence structurée introduirait une bibliothèque qui traite de nombreux travaux exécutés dans différents threads en tant que système de travail unique. La toute nouvelle bibliothèque améliorerait la gestion et l’annulation des erreurs, améliorant la fiabilité et améliorant l’observabilité, selon la proposition.

Les objectifs de la stratégie consistent à améliorer la fiabilité et l’observabilité du code multithread et à promouvoir une conception de programmes concurrents capables de se débarrasser des menaces courantes résultant de l’annulation et de l’arrêt, telles que les fuites de threads et les retards d’annulation. Pour le moment, la proposition de concurrence structurée n’est pas ciblée pour une version spécifique de Java.

La concurrence structurée est une La technique aux spectacles multithreads qui préserve la lisibilité et la maintenabilité de l’expérience des concepteurs avec un code monothread, indique la proposition. Il apporte le concept selon lequel si une tâche se divise en sous-tâches simultanées, elles retournent toutes au même endroit : le bloc de code du travail.

En revenant au même bloc de code, la durée de vie d’une sous-tâche concurrente est limitée à un bloc syntaxique. Du fait que les sous-tâches sœurs ou sœurs sont confinées au même bloc, elles peuvent être raisonnées et traitées comme un système.

Les sous-tâches traitent pour le compte d’une tâche— code dans le bloc de confinement– qui attend les résultats et les surveille pour les échecs.

Comme pour les techniques d’affichage structuré pour le code à un seul thread, la puissance de la concurrence structurée pour de nombreux threads provient de deux concepts : des points d’entrée et de sortie distincts pour le flux d’exécution à travers un bloc de code, et une imbrication stricte. la durée de vie des opérations de manière à refléter l’imbrication dans le code.

Au moment de l’exécution, la concurrence structurée construit une hiérarchie de tâches en forme d’arborescence, avec des sous-tâches sœurs appartenant au même travail de maman et de papa. L’arborescence est l’équivalent simultané de la pile d’appels d’un seul thread.

La concurrence structurée correspond aux threads virtuels, qui sont une application légère des threads fournis par le JDK. Un aperçu des threads virtuels est prévu pour Java 19 en septembre.

De nombreux threads virtuels partagent exactement le même thread de système d’exploitation, ce qui permet un grand nombre de threads virtuels. Ceux-ci peuvent représenter une unité de comportement simultanée, même un comportement d’E/S. Par conséquent, une application serveur pourrait utiliser la simultanéité structurée pour traiter des milliers ou des millions de demandes entrantes à la fois.

Essentiellement, les threads virtuels fournissent une abondance de threads et la simultanéité structurée garantit qu’ils sont correctement collaborés. Avoir une bibliothèque pour la concurrence structurée dans le JDK utilise la maintenabilité et la fiabilité des développeurs côté serveur.

La proposition n’inclut pas le remplacement des constructions de concurrence dans java.util.concurrent ou la fourniture d’une version définitive API de concurrence structurée pour Java.

La proposition ne prévoit pas non plus d’inclure un système de partage de flux d’informations entre les fils de discussion, bien que cela puisse être envisagé à l’avenir. Le système d’interruption de thread existant ne serait pas modifié par un tout nouveau mécanisme d’annulation de thread dans le cadre de la proposition actuelle, mais cela aussi pourrait se produire à l’avenir.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici