[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