[python] Jak omezit pocet bezicich vlaken

Leos Pol leos na radiante-corp.com
Úterý Červenec 24 10:47:20 CEST 2007


Zdravim,

ja toto vetsinou resim pomoci fronty a predem vytvorenych threadu. 
Schematicky by to slo zapsat takhle:

vytvorim Queue.Queue
naplnim queue daty
vytvorim thready, predam kazdemu instanci queue a spustim
cekam na dokonceni vsech threadu

run fce threadu by pak byla takhle:
try:
    while True:
        ziskam polozku z queue
        zpracuji polozku
except Queue.Empty:
    pass

Neni to dokonale, ale je to jen natuknuti, jak bych to delal ja. Vyhoda 
je v nevytvareni novych threadu, (ne)vyhoda v lockovani Queue.

Leos

Marek Kdolský wrote:
> Ahoj
>
> Jak jednoduse zajistit aby mi soucasne bezelo napriklad maximalne 5 
> vlaken, potrebuji se dopracovat k tomu aby po ukonceni kazdeho pateho 
> vlakna doslo ke spusteni noveho. Snazil jsem se vykoumat jak k tomu 
> dojit napriklad pomoci Semaforu a nejak se mi nepodarolo nic kloudneho 
> vygooglit. Existuje nejake elegantni reseni nez v nekonecne smicce 
> zjistovat pocet bezicich vlaken a na zaklade toho se rozhodnout zda nove 
> vlakno spustit ci nikoli?
>
> Dekuji Marek
>
> #!/usr/bin/python
>
> import threading
> import time
>
> class SaveConfig(threading.Thread):
>        def __init__(self, ip):
>                threading.Thread.__init__(self)
>                self.ip = ip
>
>     def run(self):
>         print "start", self.ip
>         time.sleep(5)
>         print "stop", self.ip
>
> for ip in seznam_ip:
>    t = SaveConfig(ip)
>    t.run()
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>   


-- 
----
Leos Pol
Team Leader
Radiante Corp.

If it can be imagined,
we can implement it



Další informace o konferenci Python