Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Introducción a la Concurrencia | Multithreading vs. Multiprocessing
Programación Estructural en Python

Introducción a la Concurrencia

Desliza para mostrar el menú

Concurrencia y paralelismo son términos que a menudo se usan indistintamente, pero describen enfoques diferentes para manejar múltiples tareas. Concurrencia se refiere a la capacidad de un programa para gestionar varias tareas al mismo tiempo, pero no necesariamente ejecutarlas simultáneamente. En su lugar, las tareas pueden turnarse para usar los mismos recursos, como un solo núcleo de CPU, alternando entre ellas rápidamente. Esto es especialmente útil para programas que pasan tiempo esperando operaciones de entrada/salida (E/S), como leer archivos o conexiones de red.

Paralelismo, en contraste, significa ejecutar realmente varias tareas en el mismo instante. Esto es posible cuando se dispone de más de un núcleo de CPU, permitiendo que las tareas se ejecuten verdaderamente en paralelo. El paralelismo es especialmente importante para tareas ligadas a la CPU, que están limitadas por la velocidad del procesador, como realizar cálculos complejos.

Comprender la diferencia entre tareas ligadas a la CPU y ligadas a E/S te ayuda a elegir el enfoque adecuado. Las tareas ligadas a la CPU están limitadas por la velocidad de cálculo, mientras que las tareas ligadas a E/S pasan la mayor parte del tiempo esperando que se completen operaciones externas, como el acceso a disco o respuestas de red. En Python, la concurrencia suele implementarse usando hilos, que son ligeros y pueden ayudar con tareas ligadas a E/S. Para tareas ligadas a la CPU, la multiprocesamiento, que utiliza procesos separados, es más eficaz porque los hilos en Python están limitados por el Global Interpreter Lock (GIL).

Como viste en el video, elegir entre concurrencia y paralelismo depende de la naturaleza de la carga de trabajo de tu programa. Si tus tareas están esperando E/S, la concurrencia con hilos puede mejorar la eficiencia. Si tus tareas requieren mucho cálculo, el paralelismo con múltiples procesos te ayudará a aprovechar al máximo tu hardware.

question mark

¿Qué afirmación describe mejor la diferencia entre concurrencia y paralelismo en Python?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 1

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 1
some-alt