I'm trying to run 2 processes simultaneously, but only the first one runs
def add():
while True:
print (1)
time.sleep(3)
def sud():
while True:
print(0)
time.sleep(3)
p1 = multiprocessing.Process(target=add)
p1.run()
p = multiprocessing.Process(target=sud)
p.run()
Below will work for sure but try to run this as a module.Don't try in console or Jupiter notebook as notebook will never satisfy the condition "if name == 'main'".
Save the entire code in a file say process.py and run it from command prompt.
Edit -
It's working fine. Just now I tried - 
import multiprocessing
import time
def add():
while True:
print (1)
time.sleep(3)
def sud():
while True:
print(0)
time.sleep(3)
if __name__ == '__main__':
p1 = multiprocessing.Process(name='p1', target=add)
p = multiprocessing.Process(name='p', target=sud)
p1.start()
p.start()
The method you're looking for is start, not run. start starts the process and calls run to perform the work in the new process; if you call run, you run the work in the calling process instead of a new process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With