tartur
Messages postés22Date d'inscriptionmercredi 2 avril 2003StatutMembreDernière intervention11 février 2004
-
16 sept. 2003 à 16:06
HADJAR21
Messages postés7Date d'inscriptiondimanche 22 avril 2012StatutMembreDernière intervention30 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".
HADJAR21
Messages postés7Date d'inscriptiondimanche 22 avril 2012StatutMembreDernière intervention30 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();
}
}