begin process at 2010 07 29 15:57:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > L'AUTRE FASSON DE VOIR LES THREADS

L'AUTRE FASSON DE VOIR LES THREADS


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :python, threads, queue, time Niveau :Initié Date de création :25/10/2004 Date de mise à jour :29/11/2005 21:24:02 Vu :7 476

Auteur : Marvin

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Suite a un code precedant,posté par Shinji ,qui presenté une fasson de faire des threads, j'ai adapté un code qui a été conçu de cette manière dans une seconde technique, pour montrer aux debutants dans ce domaine les differentes possibilités.
Cette methode repose sur l'utilisation de la methode start_new_thread() contenue dans le module thread .
Des explications suplementaires sont sur le forum:
http://www.pythonfrance.com/forum.v2.aspx?I D=318898
par taz_iup.

Source

  • #Cree un Thread simple.
  • #necessaire pour le thread
  • import thread
  • #necessaire pour attendre dans ma fonction MyThread() mais pas obligatoire du tout.
  • import time
  • #Je l'utilise pour stocker les informations de mes threads dan ma fonction
  • import Queue
  • # Le Queue bal permet a la fonction MyThread de montrer que les deux threads s'executent en meme temp.
  • bal = Queue.Queue (100)
  • #nb est le nombre de boucles qui vont etre executees
  • nb = 10
  • #ici on declare la fonction qui va etre executee par le thread.
  • def MyThread(name,Time=0.2):
  • for i in range(nb):
  • print name, i
  • bal.put ("Msg %d from %s"%(i,name))
  • time.sleep (Time)
  • #Ici on declare la fonction principale que l'on devra appeler.
  • def main():
  • #On lance nos threads (le premier argument est la fonction, le deuxieme est un tuple avec les arguments de cette fonction.
  • thread.start_new_thread(MyThread,("Thread 1",0.20))
  • thread.start_new_thread(MyThread,("Thread 2",0.20))
  • for i in range (nb*2):
  • msg = bal.get ()
  • print "Reception message :", msg
  • if __name__ == "__main__":
  • main()
#Cree un Thread simple.

#necessaire pour le thread
import thread
#necessaire pour attendre dans ma fonction MyThread() mais pas obligatoire du tout.
import time
#Je l'utilise pour stocker les informations de mes threads dan ma fonction
import Queue
# Le Queue bal permet a la fonction MyThread de montrer que les deux threads s'executent en meme temp.
bal = Queue.Queue (100)
#nb est le nombre de boucles qui vont etre executees
nb = 10
#ici on declare la fonction qui va etre executee par le thread.
def MyThread(name,Time=0.2): 
    for i in range(nb):
        print name, i 
        bal.put ("Msg %d from %s"%(i,name)) 
        time.sleep (Time)

#Ici on declare la fonction principale que l'on devra appeler.        
def main():
    #On lance nos threads (le premier argument est la fonction, le deuxieme est un tuple avec les arguments de cette fonction.
    thread.start_new_thread(MyThread,("Thread 1",0.20))
    thread.start_new_thread(MyThread,("Thread 2",0.20))
    for i in range (nb*2): 
        msg = bal.get () 
        print "Reception message :", msg 

if __name__ == "__main__":
    main()

 Conclusion

Voila, le code marche chez moi, mais si il ne marche pas chez vous, veuillez me prevenir :p .
C'est mon premier post, alors ne soyez pas indulgents...
L'affichage optenue est assez spécial, mais cette source n'est la que pour expliquer le fonctionnement.


 Historique

29 novembre 2005 21:24:02 :
Ajout des mots clés. Lancement automatique.

 Sources du même auteur

CHANGEMENT DE BASE (BASE DÉCIMAL VERS EXADECIMAL)

 Sources de la même categorie

Source avec Zip SCRIPT PERMETTANT DE DÉCODER LA STRUCTURE SECONDAIRE D'UNE P... par Basilio
SUPPRESSION par Rano Its
Source avec Zip RECONNAISSANCE VOCALE par brennal
CONVERTISSEUR DE TEMPÉRATURE par skizo00o
Source avec Zip Source avec une capture I.A. (DÉBUTANT) par Rano Its

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [PYTHON] JEU DU PENDU par The_tito
Source avec Zip Source avec une capture EQUATION STANDARD DE LA DROITE par calogerogigante
SIMPLE COMPARATEUR IPV4 EN PYTHON par erebos
UNIX - MODULE TIME : TEMPS D'UNE FONCTION ALGORITHMIQUE AVEC... par loupmagic
MESSAGERIE SUR LE PRINCIPE CLIENT/SERVEUR par MOY75

Commentaires et avis

Commentaire de Shinji le 25/10/2004 21:15:43

Merci bcp Marvin, ainsi les deux façon de coder sont en ligne ^^

Commentaire de azalsup le 06/12/2007 09:22:38

tres propres et c'est bien codé ...
Je decouvre que python n'a rien a envier au c ....

Commentaire de vincseize le 07/10/2008 19:24:06

Merci enormement... je debute en python, et même si j ai l impression que la plupart je devrais utiliser des  callback, celle ci me depanne en attendant

PS: pbl: impossible de comprendre l utilisation methode-class-librairie(?) callback

PS2: en fait je cherche à faire une barre de progression qui s affiche le temps de la copie d'un dossier via le fameux:

shutil.copytree(source, destination), mais qui n'accepte aucun argument supplementaire!

Commentaire de ingenieurinfo le 24/11/2009 15:16:28

J'ai testé ce script avec python 2.3.x et 2.4.x et j'ai le même pb
'module' object has no attribute 'start_new_thread'

Commentaire de ingenieurinfo le 24/11/2009 15:23:43

Salut à tous,

Est ce qu'il y a une méthode similaire à "start_new_thread" dans le package threading?

Merci d'avance pour vos aides

Commentaire de ingenieurinfo le 24/11/2009 15:39:54

re

J'ai reussi à le faire fonctionner mais mon pb c'est ce que je lance les deux threads sans que le deuxième attend la fin d'exécution du premier pour se lancer

Merci d'avance pour vos aides

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Python er Threads [ par dirthangel ] Salut a tous je suis programmeur perl, j'aimerais savoir si les threads en python sont stable ? car c'est un vraie problème en Perl merci !!! Note logiciel Python [ par Panthouffle ] Salut, je cherche un site Internet qui donne un avis des utilisateurs sur le logiciel Python, une note de la part des utilisateurs pour un travail en Script Python pour html [ par aera group ] Bonjour, je uis actuelement au chapitre 17 du tutoriel de Gérard Swinnen : Apprendre à programmer avec Python (téléchargable sur http://www.cifen.ulg. Aide : obtenir des information de Windows [ par aera group ] Bonjour,je viens de tomber sur un site très interressant sur Python et Windows. Dans ce site, on a tous les codes utiles pour obtenir des information eternel question: python vs java? [ par raptux ] Salut a vous ,proffessionel ou amateur de programmation.Je voulait apprendre le C++Mais suite a mes diverses recherches (1semaines), j'ai appris que m PETIT TABLEAU RECAPITULATIF DES ACTION PYTHON [ par raptux ] Je me suis lancer depuis peu dans le python.J'aurait voulu savoir si il existe un petit tableau recapitulatif ,de toute les action que l'on peut ecrir Lancer un script python [ par Zaltez ] Bonjour à toutes et tous,Je me decide a poser la question sur ce forum après avoir essayer plusieurs solution expliqué sur internet sans résultat. En probleme de compilation avec py2exe [ par gwenc_hlan ] bonjour, pour des raisons professionnelles, je me vois obligé de prévoire de compiler mes programmes en fichier executables. pour cela, j'utilise py2e net send dans un py [ par Crocandrew ] Bonjour J'aimerais créer un petit programme python qui me permettrait d'envoyer des NET SEND sur un pc.....Le problème c'est que je ne sais pas commen


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,841 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales