33 votes

Explication de la poignée de main locale du fil de discussion (Thread-Local Handshake)

Dans le cadre de l'initiative putative JDK 10 ce JEP 312 : Handshake Thread-Local a été proposé.

J'ai essayé de saisir sa description, mais je ne suis toujours pas sûr d'avoir bien saisi l'idée.

S'agit-il essentiellement d'une tentative de réanimer quelque chose de similaire à l'ancien programme [Thread.destroy()](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#destroy()) ?

À quoi pourrait théoriquement ressembler cette interface ?

0 votes

Pouvons-nous obtenir la réponse ? L'état actuel de cette question étant dans meta au lieu d'ici est une situation indésirable. Si la réponse ne peut être ressuscitée ? Peut-elle être repostée ? Personne ne semble savoir pourquoi cette question a été supprimée en premier lieu.

12voto

Rann Lifshitz Points 3356

Après avoir fait des recherches JEP : 312 Thread-Local-Handshake (en anglais) et la lecture des excellents commentaires à cette question, voici un résumé rapide.

  • Il s'agit d'une amélioration des performances qui ne peut pas être utilisée directement par les développeurs :

    A handshake est proposé comme une optimisation de la Hotspot safepoints mécanisme.

    Le premier permet aux threads d'un point de sécurité de continuer à s'exécuter immédiatement après avoir effectué une opération de régulation (le rappel de la poignée de main).

    Ce dernier oblige tous les threads à se bloquer sur un point de sécurité afin que les opérations critiques puissent avoir lieu (comme la GC YoungGen ou les parties STW d'une GC complète). Les threads ne sont libérés que lorsque l'opération critique a terminé son exécution.

  • Cette JEP n'est pas liée aux API de terminaison de threads telles que [Thread.destroy()](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#destroy()) . Puisque ce sujet a été soulevé, j'ajouterai quelques articles sur la terminaison des fils dans les références ci-dessous.

Commentateurs OP :

JimmyB , Andy Turner , skomisa , Alexander Bollaert

Références :

1 votes

@RannLifshitz Mélanger votre propre contenu avec ce que vous avez tiré des commentaires d'autres personnes est acceptable, tant que l'attribution des parties que vous avez prises ailleurs est claire. Le fait de faire de la réponse un wiki communautaire est une question distincte : il est approprié de le faire si la majeure partie de votre réponse est tirée de messages d'autres personnes. Voir aussi : Pourquoi marquer une réponse comme Wiki communautaire ? (Meta).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X