Volver a la página principal
martes 17 septiembre 2024
20

Concurrencia y paralelismo en Python

Diferencias entre concurrencia y paralelismo en Python

La concurrencia y el paralelismo son conceptos clave para optimizar el rendimiento en aplicaciones de Python que requieren la ejecución de múltiples tareas de forma simultánea o intercalada. Aunque están relacionados, tienen diferencias fundamentales.

  • Concurrencia: Se refiere a la capacidad de un programa para manejar múltiples tareas al mismo tiempo, pero no necesariamente ejecutándolas simultáneamente. Las tareas pueden pausarse y reanudarse, aprovechando tiempos de espera, como en operaciones de entrada/salida.
  • Paralelismo: Involucra la ejecución simultánea de múltiples tareas en múltiples núcleos de CPU. Cada tarea se ejecuta en paralelo, ideal para tareas computacionalmente intensivas.

Python admite estos dos enfoques mediante el uso de módulos como threading, multiprocessing y asyncio.

Ejemplos de concurrencia y paralelismo en Python

Concurrencia con asyncio

import asyncio

async def tarea_larga():
    await asyncio.sleep(2)
    print("Tarea completada")

async def main():
    await asyncio.gather(tarea_larga(), tarea_larga())

asyncio.run(main())

Paralelismo con multiprocessing

import multiprocessing

def proceso_largo():
    print("Proceso iniciado")
    time.sleep(2)
    print("Proceso completado")

if __name__ == '__main__':
    p1 = multiprocessing.Process(target=proceso_largo)
    p2 = multiprocessing.Process(target=proceso_largo)
    
    p1.start()
    p2.start()

    p1.join()
    p2.join()

Más información

Puedes consultar más detalles sobre concurrencia y paralelismo en la documentación oficial de Python.

Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer