Tuer un thread - Java - Programmation
Marsh Posté le 03-06-2004 à 08:16:17
bon, je te donne l'adresse de l'élite mondiale du java, mais tu la répètes pas !
http://www.javaspecialists.co.za/archive/Issue056.html
Marsh Posté le 03-06-2004 à 21:23:37
J'ai un problème similaire et j'avais essayé la méthode de nraynaud mais le Thread attend une connexion sur le socket, et ca bloque donc jusqua ce que quelqu'un se connecte au socket
code :
Code :
|
Cette méthode marche à peu pres, mais tends à bugguer par moment.
Est-ce que quelq'un a une autre solution ?
Merci.
Marsh Posté le 03-06-2004 à 21:41:12
t'as vraiment lu l'article cité par trainaud?
1/ il y est dit que Thread.interupt() est buggué concernant les appels IO bloquants
2/ pour countourner le pb, il faut fermer la socket avant de tenter de fermer la thread
Marsh Posté le 03-06-2004 à 23:17:03
[hs]
[troll]
Citation : je te donne l'adresse de l'élite mondiale du java |
Bah merde, il est même pas valide W3C, et il merdoie avec un navigateur qui respecte les standards du web comme Firefox...
[/troll]
[/hs]
Marsh Posté le 04-06-2004 à 12:17:53
raytaller a écrit : [hs]
|
chez moi ça marche sans pb.
Marsh Posté le 04-06-2004 à 17:25:24
nraynaud a écrit : bon, je te donne l'adresse de l'élite mondiale du java, mais tu la répètes pas ! |
http://www.javaspecialists.co.za/d [...] itius.html
Des cours comme ca j'en veux bien tous les jours
Marsh Posté le 04-06-2004 à 17:25:47
ReplyMarsh Posté le 04-06-2004 à 17:28:17
schnapsmann a écrit : t'as vraiment lu l'article cité par trainaud? |
C'est bon j'ai trouvé une solution qui marche très bien sans utiliser interrupt();
Mais merci (en effet, je n'avais pas bien lu)
Marsh Posté le 07-06-2004 à 22:58:07
Je remercie nraynaud pour son lien, maintenant ca fonctionne.
yo c spi > c'est quoi ta solution, ca interesse du monde !
Marsh Posté le 08-06-2004 à 01:29:46
tanguy a écrit : yo c spi > c'est quoi ta solution, ca interesse du monde ! |
surement une boucle avec un boolean qui passe à false au moment de tuer le thread ...
Marsh Posté le 08-06-2004 à 01:32:28
benou a écrit : surement une boucle avec un boolean qui passe à false au moment de tuer le thread ... |
Marsh Posté le 08-06-2004 à 02:21:13
benou a écrit : surement une boucle avec un boolean qui passe à false au moment de tuer le thread ... |
Le probleme c'est que justement dans le cas present on ne peut pas, sinon j'aurais jamais pose la question
Marsh Posté le 03-06-2004 à 03:47:42
J'utilise un thread dans mon programme Java.
Je voudrais tuer ce thread pour le relancer ensuite.
Je connais 2 possibilites (cf Thinking in Java http://www.bruceeckel.com ) pour le faire:
- utiliser un boolean stop et dans la methode run() du thread on stop le thread si le boolean est a vrai.
- dans le cas ou le thread est bloque dans le run() par un wait(), on utilise Thread.interrupt() ensuite on met le thread a null et on appelle le ramasse-miette
Malheureusement dans la methode run() de mon thread, j'utilise ServerSocket.accept() qui se bloque en attendant un client et donc les 2 solutions ci-dessus ne fonctionnent pas.
Je voudrais donc savoir s'il existe une solution pour tuer puis relancer mon thread alors que celui-ci est bloque par ServerSocket.accept()
Je me pose aussi la question d'utiliser java.nio
Si j'ai bien compris ca permet de faire comme le select() en C et donc on n'utilise pas de thread ?