Thread simple dans Python 2.6 en utilisant thread.start_new_thread ()
Je suis en suivant un tutoriel sur la simple enfilage. Ils donnent cet exemple et quand j'essaie de l'utiliser, je suis incompréhensibles erreurs de l'interprète. Pouvez-vous s'il vous plaît dites-moi pourquoi ce n'est pas de travail? Je suis sur windows xp SP3 w/Python 2.6 actuel
import thread
def myfunction(mystring,*args):
print mystring
if __name__ == '__main__':
try:
thread.start_new_thread(myfunction,('MyStringHere',1))
except Exception as errtxt:
print errtxt
De l'exécution de cette résultats dans::
Exception non gérée dans le thread lancé par
Erreur dans sys.excepthook:
Exception d'origine était:
Les informations manquantes dans le message d'erreur est fait manquant dans la sortie.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Le problème est que ton thread principal a quitté avant que votre nouveau thread a le temps de terminer. La solution est d'attendre au votre thread principal.
Comme une note de côté, vous voudrez probablement utiliser le module threading. Votre thread principal va attendre pour tous ces types de threads à être fermé avant de sortir:
Vous devez attendre jusqu'à ce que votre fils a terminé son travail, de sorte que vous avez à utiliser Thread.join() :
Mettre tout en boucle lors de la dernière puis il va travailler pour vous.
Quand j'ai couru ce code en Python 2.6, il a travaillé, est-il possible que vous avez ouvert threads déjà qui sont bloqués sur la fonction? Je recommande la fermeture de Python complètement, la vérification de votre processus en cours d'exécution pour s'assurer que rien de la vôtre est en cours d'exécution et essayez à nouveau.
Je l'ai essayé dans Python 2.5 sur un mac, après un changement de
à
Le programme n'a pas lever une exception, mais aussi n'a pas d'imprimer quoi que ce soit. Pas sûr si c'est utile, mais je trouve ça curieux...