Thread => occupation processeur [JAVA] - Programmation
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()
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 ?
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.
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)
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.
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 ...
Marsh Posté le 02-05-2002 à 20:50:57
noblue a écrit a écrit : oki je vais le faire dormir Merci. |
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
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 (