41 lines
843 B
Python
Executable File
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
|
|
"""
|