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

Reply via email to