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.
Python admite estos dos enfoques mediante el uso de módulos como threading
, multiprocessing
y asyncio
.
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())
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()
Puedes consultar más detalles sobre concurrencia y paralelismo en la documentación oficial de Python.
Jorge García
Fullstack developer