J'ai besoin d'un programme par lots avec une boucle sans fin. Dans cette boucle, il fait quelque chose et attend ensuite x secondes. Maintenant, le problème, comment puis-je arrêter la boucle de l'extérieur du programme? Une option est de lire un fichier et de rompre si le s.o. écrit "STOP" à l'intérieur, mais comment est-il avec la performance si j'ouvre et ferme toujours le fichier?Boucle sans fin avec sortie contrôlée
N'est-il pas possible de démarrer un deuxième thread à l'intérieur du même runtime, par ex. définir une 'exécution' booléenne à faux ou autre chose? Voici mon code avec "stop-file".
Integer endurance = args[3] != null ? new Integer(args[3]) : new Integer(System.getProperty("endurance"));
BufferedReader stop = new BufferedReader(new FileReader(args[4] != null ? args[4] : System.getProperty("StopFile")));
while (!stop.readLine().toUpperCase().equals("STOP"))
{
doSomething(args);
try {
Thread.sleep(endurance);
} catch (InterruptedException e) {
e.printStackTrace();
System.exit(12);
}
stop.close();
stop = new BufferedReader(new FileReader(args[4] != null ? args[4] : System.getProperty("StopFile")));
}