80 votes

Java : définir un délai d'attente sur un certain bloc de code ?

Est-il possible de forcer Java à lancer une exception lorsqu'un bloc de code s'exécute plus longtemps que prévu ?

0voto

HXCaine Points 2331

Il y a un moyen détourné de le faire.

Définissez un champ booléen pour indiquer si le travail a été achevé. Ensuite, avant le bloc de code, définissez une minuterie pour exécuter un morceau de code après votre délai. Le minuteur vérifiera si le bloc de code a fini de s'exécuter et, dans le cas contraire, il lèvera une exception. Sinon, il ne fera rien.

À la fin du bloc de code, le champ doit, bien entendu, prendre la valeur true pour indiquer que le travail a été effectué.

0 votes

Ce n'est pas correct à 100%, car le thread de la minuterie sera indépendant du thread qui exécute le bloc de code. Le thread de la minuterie peut lancer une exception même si le thread "travailleur" n'a rien fait, parce qu'il y avait d'autres threads avec une priorité plus élevée. Il y a une légère différence entre "fonctionne pendant plus de X secondes" et "a commencé avant X secondes".

0 votes

Ok, c'est juste. Merci pour la réponse. Je vais laisser la réponse en haut pour que les autres puissent voir votre commentaire.

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