25 lines
786 B
Python
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) |