Tom's Guide > Forum > Programmation > [Python] Probleme lors de la création d'un processus léger

[Python] Probleme lors de la création d'un processus léger

Forum Programmation : [Python] Probleme lors de la création d'un processus léger

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous,

Je viens de vouloir créer un processus léger.. Malheureusement, il prend longtemps a s'exécuter.. il faut parfois attendre 1 minute avant qu'il ne s'execute..

Voici un bout de mon code :

Code :
  1. # -*- coding: Utf-8 -*-
  2. import threading
  3. def execution_de_mon_processus():
  4.     es.msg ("processus executé" )
  5. def player_say (E):
  6.     monProcessus = threading.Thread(None,execution_de_mon_processus,"mon_processus" ) 
  7.     monProcessus.start()



La définition player_say est exécutée a chaque fois qu'un joueur parle et es.msg ("" ) permet d'afficher un message dans le jeu (Jeu : Counter-Strike: Source & EventScripts)

Lorsqu'un joueur parle, ce n'est que 40 secondes voir 1 minute après qu'il ai parlé que le message s'affiche.. Nous avons donc pensé a un problème de priorité ?

Comment puis-je résoudre ce problème ?

Merci

A bientôt :)

------------------------------ •• [CPU] : Intel P4 @ 3.60GhZ [^TT Blue Orb II] •• [CARTE MERE] : Asus P5E-V HDMI •• [RAM] : 2X 1Go DDR2 G.Skill PC 6400 •• [CARTE GRAPHIQUE] : Sparkle 9600GT •• [ALIMENTATION] : Seasonic S12 II {430W} •• [DISQUE DUR] : Western Digital 80GO [7200 T]
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ce n'est probablement pas un problème de priorité (à quelques centaines de millisecondes près ok, mais certainement pas sur une minute ;) ).

Dans player_say, ajoute l'affichage d'un message en tout début.
Si le temps entre les 2 message est long (ce qui m'étonnerait), alors c'est un problème de lancement du thread.
Si le premier message est long à afficher, et que les 2 sont affiché instantanément au bout d'une minute (ce qui me parait le plus probable), c'est que l'appel à player_say est très différé.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

J'ai essayé ceci :

Code :
  1. # -*- coding: Utf-8 -*-
  2. import threading
  3. def execution_de_mon_processus():
  4.     es.msg ("processus executé" )
  5. def player_say (E):
  6.     es.msg ("avant-processus executé" )
  7.     monProcessus = threading.Thread(None,execution_de_mon_processus,"mon_processus" ) 
  8.     monProcessus.start()



Le message "avant-processus executé" s'affiche tout de suite mais "processus executé" s'est affiché bien plus longtemps après ! 30 secondes voir plus.. Je n'ai pas compté ^^

Tu penses que ca pourrait venir de quoi ?

Merci :)

A bientôt ;)

------------------------------ •• [CPU] : Intel P4 @ 3.60GhZ [^TT Blue Orb II] •• [CARTE MERE] : Asus P5E-V HDMI •• [RAM] : 2X 1Go DDR2 G.Skill PC 6400 •• [CARTE GRAPHIQUE] : Sparkle 9600GT •• [ALIMENTATION] : Seasonic S12 II {430W} •• [DISQUE DUR] : Western Digital 80GO [7200 T]
Répondre à Messiah93

Essaie en créant une classe qui hérite de Thread.

Code :
  1. class TonThread(threading.Thread):
  2.   def run(self):
  3.       es.msg ("processus executé" )
  4. def player_say (E):
  5.   TonThread monProcessus
  6.   monProcessus.start()



Si tu as toujours le problème c'est surement un problème d'inter-blocage de l'objet "es".

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Problème de syntaxe = TonThread monProcessus

------------------------------ •• [CPU] : Intel P4 @ 3.60GhZ [^TT Blue Orb II] •• [CARTE MERE] : Asus P5E-V HDMI •• [RAM] : 2X 1Go DDR2 G.Skill PC 6400 •• [CARTE GRAPHIQUE] : Sparkle 9600GT •• [ALIMENTATION] : Seasonic S12 II {430W} •• [DISQUE DUR] : Western Digital 80GO [7200 T]
Répondre à Messiah93

Oui je me suis trompé dans l'instanciation, mais tu aurais pu corriger par toi-même :p

Code :
  1. monProcessus=TonThread()

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > [Python] Probleme lors de la création d'un processus léger
Aller à :

Il y a 290 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens