So habe ich etwas Ähnliches wie diesesPython Multiprocessing eine Reihe von Arbeitern beginnen und andere beginnen, wenn man fertig
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()
Was ich tun möchte, ist 4 oder mehr „Arbeiter“ starten und verarbeiten die Urls und wenn man endet mit einem anderen. Was wäre der beste Weg, dies zu tun. Ich verbringe zwei Tage damit und finde es nicht heraus.
Vielen Dank Vielen Dank.
Sie sollten einen Prozesspool verwenden. Lesen Sie hier mehr https://docs.python.org/2/library/multiprocessing.html – AndreyF
Können Sie mir ein Beispiel geben, wie man es mit einer Klasse verwendet? – sfantu
https://www.pythonsheets.com/notes/python-concurrency.html - viele Beispiele zur Verwendung als Vorlagen für verschiedene Parallelverarbeitungen einschließlich Multiprocessing – gregory