Использование Python 2.7 У меня есть этот код:питон многопроцессорная бассейн замерзает
import urllib2
import time
import os
import sys
import multiprocessing
from multiprocessing import Pool
WORKER_COUNT = 10
def worker(url):
print url
try:
response = urllib2.urlopen(url)
html = response.read()
except Exception as ex:
pass
if __name__ == "__main__":
urls = [
'http://localhost:90/',
'http://localhost:90/Default.aspx',
'http://localhost:91/?a=2&m=0',
'http://localhost:91/?a=2&m=1',
'http://localhost:91/?a=2&m=2',
'http://localhost:91/?s=2',
'http://localhost:91/?a=2&ft=false',
'http://localhost:91/?a=2&f=false',
'http://localhost:91/?fail=1',
'http://localhost:91/?fail=query',
'http://localhost:92/?a=2&m=0',
'http://localhost:92/?a=2&m=1',
'http://localhost:92/?a=2&m=2',
'http://localhost:92/?s=2'
]
while True:
p = Pool(WORKER_COUNT)
p.map(worker, urls[0:4])# too many urls will cause it to freeze up
print "Restart"
time.sleep(5)
, когда я использую все URLs (там может быть 30 URLs), она замерзает после запуска через первый набор. Когда я использую 5 URL-адресов, как в приведенном выше коде (url [0: 4]), он не замерзает. Любые идеи, почему? Код - это тестовый код, поэтому он должен работать вечно (в течение нескольких часов).
Вы не должны воссоздать объект 'Pool' внутри цикла while. Создайте его снаружи. – dano