Parallel Processing
unknown
python
a year ago
962 B
20
Indexable
import multiprocessing import random import time def process_C(semaphore): try: sleep_time = random.random() * 6 print("Process C sleeping for {:.2f} seconds".format(sleep_time)) if sleep_time > 4.2: raise Exception("Random exception") time.sleep(sleep_time) print("Process C completed") semaphore.release() except Exception as e: print("Process C failed: {}".format(e)) semaphore.release() def process_B(semaphore): p = multiprocessing.Process(target=process_C, args=(semaphore,)) semaphore.acquire() p.start() p.join(timeout=0) # Set timeout to 0 to prevent blocking print("Process B completed") def process_A(semaphore): process_B(semaphore) print("Process A completed") if __name__ == "__main__": semaphore = multiprocessing.Semaphore(20) while True: process_A(semaphore)
Editor is loading...
Leave a Comment