这个来源只是一个例子:
inputf = open('input', 'r')
outputf = open('output', 'a')
for x in inputf:
x = x.strip('\n')
result = urllib2.urlopen('http://test.com/'+x).getcode()
outputf.write(x+' - '+result+'\n')
我想为此添加线程以同时检查几个网址。 用户应该每次决定他想要使用多少线程。 输出的顺序并不重要。
最好和最美好的方式是什么?
答案 0 :(得分:4)
我喜欢multiprocessing.pool.ThreadPool
(或multiprocessing.pool.Pool
)
像:
from multiprocessing.pool import ThreadPool
n_threads = 5
pool = ThreadPool(processes=n_threads)
threads = [pool.apply_async(some_function, args=(arg1,)) for arg1 in args]
pool.close()
pool.join()
results = [result.get() for result in threads]