Для этого вы должны использовать стандартную нарезку python. Вам нужно будет создать класс, представляющий отдельный поток для каждой загрузки, а затем запустить каждый поток.
Что-то вроде:
import urllib
from threading import Thread
class Downloader(Thread):
def __init__(self, file_url, save_path):
self.file_url = file_url
self.save_path = save_path
def run():
urllib.urlretrieve(self.file_url, self.file_path)
Downloader('http://example.com/test1.zip', "C:\Test\test1.zip").start()
Downloader('http://example.com/test2.zip', "C:\Test\test2.zip").start()
Дать это с верхней части моей головы, поэтому не гарантируется. Ключ должен подклассифицировать класс Thread и переопределить функцию run(), а затем запустить поток.
Что касается ответа Dave_750, потоковая передача фактически эффективна в этой ситуации, потому что операция загрузки - это ввод-вывод, а не интерпретация кода Python, поэтому GIL на самом деле не проблема. Например, я использую потоки для отправки нескольких электронных писем.
Вы можете попробовать следующее: http://docs.python.org/2/library/multiprocessing.html –