49 lines
1.3 KiB
Python
Executable File
49 lines
1.3 KiB
Python
Executable File
"""
|
|
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
|
|
"""
|