Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

running two process simultaneously

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()
like image 799
aja Avatar asked Apr 25 '26 06:04

aja


2 Answers

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 - enter image description here

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()
like image 141
Brij Avatar answered Apr 27 '26 20:04

Brij


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.

like image 33
user2357112 supports Monica Avatar answered Apr 27 '26 20:04

user2357112 supports Monica