Programme qui consomme beaucoup de CPU
Salut,
j'ai fais un programme de tchat avec les sockets et il fonctionne , mais le problème c'est qu'il consomme presque 26% du processeur , j'ai constaté que les portions du programme responsables de ce problème sont les suivantes:
le 1er threads pour la réception des messages:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public void run() {
// TODO Auto-generated method stub
while(!stop){
try {
if((MsgRecu = in.readLine())!=null){
System.out.println(MsgRecu);
fenetre.recu(MsgRecu);
}
} catch (IOException e) {
e.printStackTrace();
try {
in.close();
} catch (IOException e1) {
e1.printStackTrace();
}
break;
}
}
} |
Le 2ème thread pour l'émission
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public void run() {
while(!stop&&message!=null){
if(envoyer){
message=fenetre.envoyer();
out.println(message);
out.flush();
envoyer=false;
}
}
out.close();
} |
Est ce que quelqu'un peut me proposer une solution ,pour empcher le processus de travailler tant que aucun message n'est encore arrivé?