所以我也有类似的这种Python的多重启动一批工人,并开始别人当一个完成
import multiprocessing
class MyFancyClass(object):
def __init__(self, name):
self.name = name
def do_something(self):
proc_name = multiprocessing.current_process().name
print 'Doing something fancy in %s for %s!' % (proc_name, self.name)
def worker(q):
obj = q.get()
obj.do_something()
if __name__ == '__main__':
urls = [
'http://www.python.org',
'http://www.python.org/about/',
'http://www.python.org/community/awards/'
# etc..
]
queue = multiprocessing.Queue()
p = multiprocessing.Process(target=worker, args=(queue,))
p.start()
queue.put(MyFancyClass('Fancy Dan'))
# Wait for the worker to finish
queue.close()
queue.join_thread()
p.join()
我想要做的是有4个或更多的“工人”是什么东西启动和处理的URL,当一个完成开始另一个。 什么是最好的方式来做到这一点。我花了两天时间,无法弄清楚。
谢谢 谢谢。
您应该使用进程池。在这里阅读更多 https://docs.python.org/2/library/multiprocessing.html – AndreyF
你能给我一个如何与类一起使用的例子吗? – sfantu
https://www.pythonsheets.com/notes/python-concurrency.html - 用于作为包括多处理在内的各种并行处理的模板的范例程序 – gregory