Apuntes_Python/02_conceptos/17_multiprocessing/a_ejemplo_multiprocessing_value.py
2022-12-24 22:41:20 -03:00

41 lines
843 B
Python
Executable File

"""
Multiprocessing
crear y detener procesos
compartir datos entre proscesos
uso de 'lock' para prevenir 'race-conditions'
uso de 'queue'
administrar multiples procesos
"""
from multiprocessing import Process, Value, Lock
import time
def add_100(numero, lock):
for i in range(100):
time.sleep(0.01)
with lock:
numero.value += 1
if __name__ == "__main__":
lock = Lock()
nro_compartido = Value('i', 0)
print('el número al comienzo es', nro_compartido.value)
p1 = Process(target=add_100, args=(nro_compartido, lock))
p2 = Process(target=add_100, args=(nro_compartido, lock))
p1.start()
p2.start()
p1.join()
p2.join()
print('el número al final es', nro_compartido.value)
"""
el número al comienzo es 0
el número al final es 200
"""