[Python-de] Threading

Matthias Urlichs smurf at noris.de
Mon Mar 31 11:52:35 EST 2003


Hi,

On Monday 31 March 2003 11:54, Harald Armin Massa wrote:
> 1.) die Liste der URLs in eine Queue stellen
>
Queue hat gegenüber "kleine_Array+Semaphoren" den Nachteil dass sie umne 
Größenordnung lahmer ist (war jedenfalls so das letzte Mal als ich das 
getestet habe).

> import Queue
> urlq=Queue.Queue()
Hier kann man praktischerweise eine maxsize definieren.

> for element in urlListe:
>     urlq.put(element)

> class Worker(Thread):
>             meineURL=urlq.get_nowait()
>             if meineURL is None:
>                 break
> 3.) ein Rudel Arbeitsthreads erzeugen & starten
>
Wie gesagt -- die ganze Liste füllen und dann erst die Threads starten ist 
spätestens bei vielen URLs oder nichttrivialer URL-Generierung 
kontraproduktiv. (Die urlliste ist bei mir im Übrigen grundsätzlich ein 
Iterator. ;-)

Wenn du ohne nowait arbeitest, brauchst du natürlich einen Stop-Marker.
Das geht bei Queue aber genauso wie bei simpler Array.

> Kannst sogar die Queue nach und nach befüllen, solange sie nicht leer
> ist, laufen die Threads weiter.
>
Das würde ich nicht tun... solche Programmier-Abkürzungen tendieren dazu, 
früher oder später gewaltig in die Hose zu gehen.

-- 
Matthias Urlichs
-- 
Die Liebe will 1 Menschen; die Wollust alle Menschen; nur hat diese
dann nicht genug; jene aber an 1 die Unendlichkeit.
		-- Jean Paul
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: signature
Url : http://starship.python.net/pipermail/python-de/attachments/20030331/b46e8358/attachment.bin


More information about the Python-de mailing list