On 2014-11-13 18:10, Anurag wrote:
On Thursday, November 13, 2014 1:07:56 PM UTC-5, Anurag wrote:
I am having trouble understanding the Multiprocessing module.
I need to run three different files 'Worker1' , 'Worker2', 'Worker3' all at
once. Currently I am doing this :
from multiprocessing import Process
import Worker1.py
import Worker2.py
import Worker3.py
p1 = Process(target=Worker1.py)
p1.start()
p2 = Process(target=Worker2.py)
p2.start()
p3 = Process(target=Worker3.py)
p3.start()
But this will only start the 'Worker1'. How do I execute all the three files at
once?
Thanks
I am using Python 2.7 and each of my 'Worker' has a never ending loop that runs
continuously.
The documentation has this example:
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
Suppose this is in a module called 'example.py'.
When 'example.py' is run as the main module, it executes:
p = Process(target=f, args=('bob',))
p.start()
The multiprocessing module will _import_ 'example.py' in a new process,
and because it's only imported (and not run as a main module), that
code won't be executed. The multiprocessing module will then call the
'f' function.
The way you've written your module, it'll spawn a new process even when
it's only imported, causing the spawned process to spawn another
process, which will, in turn, spawn another...
--
https://mail.python.org/mailman/listinfo/python-list