Thread Question
Duncan Booth
duncan.booth at invalid.invalid
Thu Jul 27 11:20:25 EDT 2006
Ritesh Raj Sarraf wrote:
> Duncan,
>
> I couldn't make out much from the code.
> Instead this is what I did.
>
> threads = []
> nloops = range(len(lRawData))
> for i in nloops:
> (sUrl, sFile, download_size, checksum) =
> stripper(lRawData[i])
> t = threading.Thread(target=download_from_web, args=(sUrl,
> sFile, sSourceDir, None))
> # = pypt_thread(download_from_web, i,
> stripper(lRawData[i]))
> threads.append(t)
>
> i = 0
> join_i = 0
> while i < nloops:
> counter = 0
> while counter < 3:
> threads[i].start()
> counter += 1
> i += 1
> counter = 0
> join_i = i - 3
> while counter < 3:
> threads[join_i].join()
> counter += 1
> join_i += 1
>
> Is this correct ? Comments!!
>
This is bad because you start one thread for each URL then let them run in
batches of 3. So you get all the overhead of creating lots of threads and
very little of the benefit. Much better just to create 3 threads and let
each one handle as many of the requests as it can.
More information about the Python-list
mailing list