Question

Existe-t-il un moyen d'interrompre un avenir sans l'annuler?

API Java Doc:

booléen annuler (Boolean May Interrupfrunning)

Tente d'annuler l'exécution de cette tâche. Cette tentative échouera si la tâche est déjà terminée, a déjà été annulée ou n'a pas pu être annulée pour une autre raison. En cas de succès, et cette tâche n'a pas commencé lorsque l'annulation est appelée, cette tâche ne devrait jamais s'exécuter. Si la tâche a déjà démarré, le paramètre MayInterrupfrunning détermine si l'exécution de threads cette tâche doit être interrompue dans le but d'arrêter la tâche.

Pour capturer l'interruption, nous devons attraper correctement l'exception interrompue ou vérifier la méthode ISinterrupted () dans la méthode Runnable / Callable.

Mais il n'y a aucun moyen d'interrompre un avenir en cours d'exécution en utilisant la future interface

Étant donné que tous les threads sont dans le pool de services exécutoires, personne ne peut faire thread.interrupt (). Est-ce pour cela qu'il a été supposé que toute interruption ne viendra que lorsqu'un avenir est annulé ou qu'un pool de thread se termine?

J'essaie de comprendre pourquoi il n'y a pas de méthode d'interruption dans l'interface future. Toute aide est la bienvenue

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top