IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

comment stopper un JoinableQueue?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut comment stopper un JoinableQueue?
    Bonjour à tous,
    Je reproduis pour apprendre les exemples du livre "Python essential reference" de Beazley et lorsque je lance le code ci-dessous l'interpréteur ne me rend pas la main.
    Que dois-je faire pour que que ce soit le cas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/usr/bin/python
     
    # *-* coding UTF-8 *-*
     
     
    from multiprocessing import Process, JoinableQueue
     
     
    def consumer(q):
    	while True:
    		item=q.get()
    		if item is None:
    			break
    		print item
    	print "consumer done"
     
    def producer(seq,q):
    	for item in seq:
    		q.put(item)
     
    if __name__=='__main__':
    	q=JoinableQueue()
    	cons_p=Process(target=consumer,args=(q,))
    	#cons_p.deamon=True
    	cons_p.start()
    	producer([1,2,3,4,5],q)
    	q.put(None)
    	q.join()

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,
    Une JoinableQueue impose un minimum de choses aux opérations put et get pour que le "join" fonctionne...

    Implicitement, çà dit chaque "put" équivaut à mettre une tache a effectuer en attente. Puis on a une sorte "serveur" qui retire les taches à faire via .get, les exécute et signale la fin de la tache via .task_done.
    La différence entre le nombre de taches insérées et le nombre de taches effectuées ("task_done") rendra le .join" bloquant ou pas.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2004
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 187
    Par défaut

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment stopper un evènement ?
    Par Bapt.ice dans le forum C#
    Réponses: 17
    Dernier message: 20/04/2006, 02h36
  2. [vbexcel]Comment stopper une macro sans la planter.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/11/2005, 14h45
  3. [Run]Comment stopper un prog sous Eclipse
    Par smag dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 31/07/2005, 00h48
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. Réponses: 17
    Dernier message: 19/10/2004, 09h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo