: Arrêter une thread en train de lire? [JAVA] - Programmation
MarshPosté le 23-03-2002 à 16:45:20
Bonjour, J'ai une thread qui lit quelque chose jusqu'à ce qu'elle atteigne la fin du flux ou par demande d'une autre thread via une variable volatile (interrupt).
Je ne peux rien faire tant qu'elle est dans la méthode read(). Alors j'ai essayé a méthode available(), mais elle renvoie toujours 0 en fin de flux (dans mon cas control-D sous GNU/Linux).
Voilà mon code actuel:
Code :
InputStream in = getInputStream();
OutputStream out = getOutputStream();
byte data[] = new byte[BUFFER_SIZE];
int length = 0;
try
{
TEST : for(;;)
{
while(in.available() == 0)
{
if(interrupt == true)
break TEST; // demande d'arrêt de la thread
}
if((length = in.read(data)) != -1)
out.write(data, 0, length);
else
break; // atteinte de la fin du flux de lecture
}
}
catch(IOException e)
{
System.err.println("I/O error" );
}
Merci d'avance pour votre aide.
PS: J'ai édité plusieurs fois mon post pour le rendre plus clair. Désolé pour ceux qui sont passés avant.
[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]
Marsh Posté le 23-03-2002 à 16:45:20
Bonjour,
J'ai une thread qui lit quelque chose jusqu'à ce qu'elle atteigne la fin du flux ou par demande d'une autre thread via une variable volatile (interrupt).
Je ne peux rien faire tant qu'elle est dans la méthode read(). Alors j'ai essayé a méthode available(), mais elle renvoie toujours 0 en fin de flux (dans mon cas control-D sous GNU/Linux).
Voilà mon code actuel:
Merci d'avance pour votre aide.
PS: J'ai édité plusieurs fois mon post pour le rendre plus clair. Désolé pour ceux qui sont passés avant.
[jfdsdjhfuetppo]--Message édité par Krueger--[/jfdsdjhfuetppo]