[JAVA] Thread => occupation processeur

Thread => occupation processeur [JAVA] - Programmation

Marsh Posté le 02-05-2002 à 18:57:54    

Humm qaund je fait un thread ça occupe 100% de mon proc  
Peut on dire a un thread de n'utiliser que 10%du proc ?
car sinon j'ai mon prog qui rame a fond :((

Reply

Marsh Posté le 02-05-2002 à 18:57:54   

Reply

Marsh Posté le 02-05-2002 à 19:05:07    

noblue a écrit a écrit :

Humm qaund je fait un thread ça occupe 100% de mon proc  
Peut on dire a un thread de n'utiliser que 10%du proc ?
car sinon j'ai mon prog qui rame a fond :((  




 
c'est parce que tu ne le fais pas dormir lorsqu'il est inactif ...
 
montre le code de public void run()


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 19:10:05    

public void run()  
{
serv.afficheZone("Ecoute en cours" );
boolean fini=false;  
          try {
           String lue=null;  
           String rep;  
           while (!fini)
            {
            if (lue.startsWith("#2#" )) //reception grille
             {
                Case[][] grilleTmp=null;
                grilleTmp = (Case[][]) lectureObjet.readObject();
....
 
le code c'est assez long => voilà le début
faire dormir le tread => c'est la fct sleep je suppose ?  
mais je veux pas qu'il dorme juste qu'il tourne tout le temps mais pas qu'il occupe toute la cpu => on peut le faire ça ?

Reply

Marsh Posté le 02-05-2002 à 19:13:47    

noblue a écrit a écrit :

mais je veux pas qu'il dorme juste qu'il tourne tout le temps mais pas qu'il occupe toute la cpu => on peut le faire ça ?  




 
bin je ne sais pas à quoi te sert ton thread. Logiquement tu as deux types de thread:
 
1. Un thread qui doit faire un process en // d'un autre (par ex: calculer la 50eme décimale de Pi)
2. Un thread qui attend des évenements et lorsqu'il les récupère fais des trucs asynchrones dessus
 
Dans le cas 1 ton thread doit faire son brol puis s'arreter (ie. fin de la méthode run)
 
Dans le cas 2 lorsqu'il a processer tout les évenements il s'endort quelques centièmes de sec puis il regarde à nouveau si il n'y a rien à faire. Si il n'y a rien à faire il s'endort à nouveau etc.


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 19:14:55    

donc si il y a tout le temps des trucs à faire c'est normal qu'il prenne du proc. Tu peux définir sa priorité pour qu'il en prennet moins (setPriority si je me souviens bien ,regarde le javadoc)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 19:17:40    

oki je vais le faire dormir
Merci.
 
Ps : pour le set priority j'avais regardé => ça sert a choisir les priorités d'execution du thread mais ça a pas d'influence sur la charge cpu.

Reply

Marsh Posté le 02-05-2002 à 19:18:36    

noblue a écrit a écrit :

oki je vais le faire dormir
Merci.
 
Ps : pour le set priority j'avais regardé => ça sert a choisir les priorités d'execution du thread mais ça a pas d'influence sur la charge cpu.  




 
bien sur que si. Tout dépend le nombre de threads et la façon dont tu as fait ton design. Mais setPriority a bel et bien une influence ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 02-05-2002 à 19:20:56    

oki je vais retester

Reply

Marsh Posté le 02-05-2002 à 20:50:57    

noblue a écrit a écrit :

oki je vais le faire dormir
Merci.




:non:
pas de sleep !
 
Thread.yield() rulez !
 
Ca rend la main aux autres thread. Il ne faut faire des sleep que si tu veux réélement que l'execution de ton thread s'arrête pendant un moment

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed