Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Timeout sur des Threads

2 réponses
Avatar
Xavier
Salut à tous;

Je découvre un peu le monde des threads dans java.
je cherche à fixer une durée de vie (Timeout) à un thread.

En fait un thread est créé pour executer une requete vers un EIS; si la reponse
est trop longue à venir je dois arreter le thread. Donc c'est bien essayer de
fixer un timeout sur un thread.

J'ai recherché sur le net et je n'ai pas vu de chose qui resemblait à ça.
J'ai regardé les class timer et Timertask mais cela permet juste de fixer des
delais d'attente avant l'execution ou la periode de réexecution.

Si quelqu'un à une idée ou meme un bout de code ce serait le paradis.

Merci à tous d'avance.

Xavier.

--
Ce message a été posté via la plateforme Web club-Internet.fr
This message has been posted by the Web platform club-Internet.fr

http://forums.club-internet.fr/

2 réponses

Avatar
Cedric

Je découvre un peu le monde des threads dans java.
je cherche à fixer une durée de vie (Timeout) à un thread.



Umm... Je suis pas sur que tu puisse directement donner une duree de vie a
un Thread. De toute facon ca serait relativement imparfait car tu as une
execution non exclusive de ton code ( ton thread qui commence a tempsCPU=0
et s'arrete a tempsCPU00 n'a pas -forcement- vecu/execute son code
pendant 1000 unites.)
Par contre tu peux utiliser deux Thread ( style monitor/monitored ). Un
Thread B qui contient une methode bloquante, ou duree d'execution longue; et
un Thread A qui cree le Thread B. Dans le Thread A, tu mets un sleep(duree
max) qui rend la main au Thread general ( de ta main() ) si le temps est
ecoule et que B n'a pas fini ( dans ce cas il faut prevoir le 'nettoyage'
propre de B).

Cedric

Avatar
Damien Lecan
Xavier wrote:
je cherche à fixer une durée de vie (Timeout) à un thread.
En fait un thread est créé pour executer une requete vers un EIS; si la reponse
est trop longue à venir je dois arreter le thread. Donc c'est bien essayer de
fixer un timeout sur un thread.
Si tu bosses avec des sockets, elles ont tout ce qu'il faut pour lever

des timeout.

Sinon, tu peux travailler avec la méthode join(délai), à exécuter par le
thread d'origine ...


Damien