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() 42 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 - 
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.