import time import random from multiprocessing import Process def f(): while True: time.sleep(10) dice = random.randint(1, 10) if dice == 1: raise ValueError elif dice == 2: break if __name__ == "__main__": print(1) processes = [Process(target=f, daemon=False) for _ in range(20)] print(2) [p.start() for p in processes] print(3) [p.join() for p in processes] print(4)