Voila, je créé une application qui en gros, est un gestionnaire d'évènement, qui utilise le Design Pattern Reactor. (En gros, chaque évènement reçu est géré par cette classe reactor, qui se charge d'identifier le type d'évènement, et d'activer le handler spécifique à ce type d'évènement).
J'ai une interface en "menu en console".
Comme mettre du code serait un peu compliqué vu le nombre d'appels, je fais plutôt mettre une trace d'exécution et préciser les appels : (je mets entre parenthèse les appels qui se passent en arrière plan)
Et c'est tout. Normalement, après ma saisie, un nouveau menu aurait dû s'afficher, avec "Stop the reactor en première ligne", or là,
l'exécution est bloquée par la boucle infinie :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
private void receive() {
System.out.println("receive on");
while(state.equals(Constants.REACTOR_ON)) {
if(event_queue.size()!=0) {
System.out.println("receive on and on");
SecurityEvent se=event_queue.firstElement();
System.out.println("A new Security Event has been received");
select_handler(se);
event_queue.remove(0);
}
//System.out.println("receive waiting because empty");
}
} |
Je comprends bien qu'il y a un problème de thread, et ce que je voudrais donc,
c'est faire en sorte que ce processus se déroule en arrière plan, et que je puisse pour autant continuer l'exécution de mon programme.
Comment ?
Merci d'avance pour votre aide.
Partager