threading y Queue

Alvaro López Ortega alvaro en godsmaze.org
Vie Sep 14 21:01:42 CEST 2001


On Thu, 2001-09-13 at 19:19, Ramon Gonzalez wrote:

> Estoy intentando aprender sobre hilos y tengo dudas. Pongo el código
> aquí para ver si alguien me puede decir en qué fallan las rutinas.
> Al principio lo hice como aparece en 'threading1.pyw', pero despues vi
> en el manual que existe una clase llamada Queue que está diseñada para
> lo que pretendo hacer (según pude entender), e hice 'threading2.pyw'.

El problema que tienes, que en realidad no es un problema, es el "tamaño
del grano":


from threading import *
from Queue import *

class hilillo(Thread):

    def __init__(self, n):
        Thread.__init__(self,name=n)

    def run(self):
        while not lista.empty():
              nuevo = lista.get()
              print "Soy el hilo %s: %d" % (self.getName(), nuevo)

lista = Queue()
for x in xrange(11111):
    lista.put(x)

h1 = hilillo('uno')
h2 = hilillo('dos')
h3 = hilillo('tres')
h1.start()
h2.start()
h3.start()
h1.join()
h2.join()
h3.join()


Si ejecutas este ejemplo puedes ver como realmente funciona, pero con el
ejemplo de una lista de 10 elementos no llevaba a cambiar de un thread a
otro.

-- 
Greetings, alo.





Más información sobre la lista de distribución Python-es