Parallel Processing
unknown
python
a year ago
962 B
22
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