Comment peut-on arreter un threadf

tartur Messages postés 22 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 11 février 2004 - 16 sept. 2003 à 16:06
HADJAR21 Messages postés 7 Date d'inscription dimanche 22 avril 2012 Statut Membre Dernière intervention 30 mai 2012 - 7 juin 2012 à 22:59
bonjour je voulais savoir comment arreter un thread en cours
de travail ou l'immobiliser pendant une durée indéfinie !pour le reprendre apés mais même si c po possible je suis intéressé par la première solution!
en fait je veux faire une "pause".

tartur

2 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
16 sept. 2003 à 17:11
salut,
tu peux faire un interrupt() ou un sleep(nombre de millisecondes a attendre)
Duss
0
HADJAR21 Messages postés 7 Date d'inscription dimanche 22 avril 2012 Statut Membre Dernière intervention 30 mai 2012
7 juin 2012 à 22:59
public class MonThread extends Thread {
private static boolean correct = true;

@Override
public void run() {
while (true) {
// Traitement 1
for (int i = 0; i < 10; i++) { // Boucle imbriquée
// Traitement 2
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
if (correct)
Thread.currentThread().interrupt(); // réinterruption sur soi-même
System.out.println("premier Catch");
break; // Sortir de la boucle for
}
}
try {
// Traitement 3
System.out.print("Devant le sleep, ");
Thread.sleep(1000);
System.out.print("Derrière le sleep, ");
} catch (InterruptedException ex) {
if (correct)
Thread.currentThread().interrupt();
System.out.println("Deuxième catch");
break; // Sortir de la boucle while
}
}
System.out.println("Fermeture du Thread");
}

private static void test() throws InterruptedException {
Thread t = new MonThread();
t.start();
Thread.sleep(2500);
t.interrupt();
t.join(); // Attente de la fermeture du thread avant de continuer.
System.out.println("Fin du Thread"); // Le thread a été fermé.
}

public static void main(String[] args)
throws InterruptedException {
test();
correct = false; // Désactive la réinterruption du thread sur lui-même.
test();
}
}
0
Rejoignez-nous