Problème de thread

michaeljeru Messages postés 3 Date d'inscription lundi 12 avril 2010 Statut Membre Dernière intervention 10 décembre 2009 - 10 déc. 2009 à 00:04
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 - 10 déc. 2009 à 10:41
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)


Please make a selection:
******************************
[1] Start the reactor
[2] Generate an event
[3] Exit
******************************
1
Reactor ON (trace provenant du run() de la classe Reactor : le reactor a bien été démarré, et a donc généré un appel à la méthode receive() de cette même classe)
receive on (trace d'entrée du receive de la classe reactor)



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 :


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.

1 réponse

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
10 déc. 2009 à 10:41
Salut,

j'ai pas trop compris, as tu créé le thread ? ou c'est un pb de communication ?
0
Rejoignez-nous