Apuntes_Python/02_conceptos/15_threading_vs_multiprocessing/a_multip.py

49 lines
1.3 KiB
Python
Raw Normal View History

2022-12-24 22:41:20 -03:00
"""
Multiprocessing
"""
from multiprocessing import Process
import os, time
def nros_cuadrados():
"""
función dummy para ser ejecutada por Process 'target'
"""
for i in range(100):
i * i
time.sleep(0.1)
# lista que guarda todos los procesos
procesos = []
# un buen número de procesos es la cantidad de CPUs de la maquina
num_procesos = os.cpu_count()
# creación de los procesos
for i in range(num_procesos):
# Process toma 2 argumentos
# función target
p = Process(target=nros_cuadrados) # , args=(tupla_args))
procesos.append(p)
# Iniciar procesos
for p in procesos:
p.start()
# join (bloquear el hilo principal hasta terminar ejecución de procesos)
for p in procesos:
p.join()
print("FIN main")
"""
Ejemplo de la salida de Htop
20551 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20552 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20553 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20554 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20555 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20556 root 20 0 8732 S 0.0 0.1 0:00.00 1 python3 multi.py
20557 root 20 0 8736 S 0.0 0.1 0:00.00 1 python3 multi.py
20558 root 20 0 8736 S 0.0 0.1 0:00.00 1 python3 multi.py
"""