import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
Main main = new Main();
// Tâches de fond
new Thread(() -> {
// Callback avec un log direct à la console en cas d'erreur un log dans stderr
main.longTask(5000, System.out::println, System.err::println);
}).start();
new Thread(() -> {
main.longTask(5001, System.out::println, System.err::println);
}).start();
// Callback avec un traitement
main.longTask(500, message -> {
System.out.println("La fonction renvoie le message : " + message);
}, System.err::println);
}
public void longTask(long time, Consumer < String > callback, Consumer < String > errorCallback) {
try {
if (time > 5000) {
// Execute le callback erreur
errorCallback.accept("Erreur temps > 5000 ms");
} else {
Thread.sleep(time);
// Execute le callback
callback.accept("Terminé !");
}
} catch (InterruptedException e) {
// Execute le callback erreur
errorCallback.accept("Erreur : " + e);
}
}
}
Commentaires
Enregistrer un commentaire