""" 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, Array, Lock import time def add_100(numeros, lock): for i in range(100): time.sleep(0.01) for i in range(len(numeros)): with lock: numeros[i] += 1 if __name__ == "__main__": lock = Lock() array_compartido = Array('d', [0.0, 100.0, 200.0] ) # double print('Arreglo al comienzo: ', array_compartido[:]) p1 = Process(target=add_100, args=(array_compartido, lock)) p2 = Process(target=add_100, args=(array_compartido, lock)) p1.start() p2.start() p1.join() p2.join() print('Arreglo al final: ', array_compartido[:]) """ Arreglo al comienzo: [0.0, 100.0, 200.0] Arreglo al final: [200.0, 300.0, 400.0] """