Projects/mult.py
2025-09-12 20:37:36 -07:00

25 lines
786 B
Python

# Multiprocessing: Sharing data between processes (a Value or Array memory share must be created as processes do not share data by default
from multiprocessing import Process, Value, Array, Lock
import os
import time
def add_100(number, lock):
for _ in range(100):
time.sleep(0.01)
with lock:
number.value += 1
print(f'Process {os.getpid()} has finished execution.')
if __name__ == "__main__":
lock = Lock()
shared_number = Value('i', 0)
print('Number at the beginning is: ', shared_number.value)
p1 = Process(target=add_100, args=(shared_number, lock))
p2 = Process(target=add_100, args=(shared_number, lock))
p1.start()
p2.start()
p1.join()
p2.join()
print('Number at the end is: ', shared_number.value)