- 1

Fundamentos de Programación con Python para Principiantes
02:04 - 2

Instalación y Uso Básico de Python en Windows y Mac
08:10 - 3

Semántica y Sintaxis en Programación Python
10:15 - 4
Práctica: Te doy la bienvenida a los ejercicios interactivos
00:00 - 5

Manejo de Cadenas y Operaciones Básicas en Python
13:06 - 6

Tipos de Datos en Python: Enteros, Flotantes y Booleanos
07:22 - 7
Dominio de la función `print` en Python: usos y formatos avanzados
04:00 - 8

Operaciones matemáticas avanzadas en Python: módulo, potencia y más
11:01 - 9

Entrada de información y manejo de tipos de datos en Python
04:53
Concurrencia y Paralelismo en Python: Técnicas y Librerías Básicas
Clase 55 de 63 • Curso de Python
Contenido del curso
- 23

Programación Orientada a Objetos en Python: Clases y Métodos Básicos
14:11 - 24

Gestión de Biblioteca con Programación Orientada a Objetos
18:07 - 25

Herencia y Polimorfismo en Programación Orientada a Objetos
13:57 - 26

Programación Orientada a Objetos: Implementación de Clases y Herencia
13:10 - 27

Polimorfismo en Programación Orientada a Objetos
06:21 - 28

Herencia y Uso de la Función super() en Python
07:28 - 29
Programación Orientada a Objetos: Atributos, Métodos y `super()` en Python
05:06
- 37
Programación Avanzada en Python: POO, Excepciones y Proyectos
01:45 - 38

Escritura de Código Pytónico y Buenas Prácticas en Python
03:58 - 39

Comentarios y Docstrings: Buenas Prácticas en Programación
07:01 - 40

Tiempo de vida y alcance de variables en Python
14:11 - 41

Anotaciones de Tipo en Python para Código Más Legible
13:12 - 42

Validación de Tipos y Manejo de Excepciones en Python
13:05 - 43

Estructuras de Datos Avanzadas en Python: Collection y Enumeraciones
13:15
- 47

Uso de Métodos Mágicos en Python
06:47 - 48
Sobrecarga de Operadores en Python: Personaliza Comportamiento de Clases
04:18 - 49

Ejecutar scripts Python con `if __name__ == '__main__'`
05:42 - 50

Metaprogramación en Python: Métodos `__new__` y `__init__`
03:59 - 51

Uso de *args y **kwargs en funciones de Python
14:32 - 52

Métodos y Atributos Privados y Protegidos en Python
09:26 - 53

Uso de Property en Python: Getter, Setter y Eliminación de Atributos
07:56 - 54

Métodos estáticos y de clase en Python
07:46
¿Cómo enfrentar el crecimiento masivo de usuarios en una aplicación?
Cuando creamos una aplicación, el manejo de tareas puede ser sencillo con pocos usuarios. Sin embargo, a medida que la aplicación gana popularidad, la gestión de un número creciente de solicitudes se complica. ¿Cómo podemos solucionar esto? A través de técnicas de paralelismo y concurrencia. Estas técnicas permiten una administración más eficiente de las tareas, especialmente en situaciones donde se requiere procesar múltiples operaciones de forma simultánea.
¿Qué diferencia al procesamiento secuencial del concurrente y el paralelo?
- Procesamiento secuencial: Cada tarea se completa por completo antes de iniciar la siguiente.
- Concurrencia: Comenzamos fragmentos de diversas tareas, pausándolas y retomándolas de forma alterna.
- Paralelismo: Las tareas se ejecutan simultáneamente en diversos núcleos de procesamiento, requiriendo tantos núcleos como tareas en paralelo.
¿Cómo implementar concurrencia usando Python?
En Python, la librería threading nos permite introducir concurrencia a través de hilos. A continuación, se muestra un ejemplo de cómo realizar esto.
import threading
import time
def procesar_solicitud(request_id):
print(f"Procesando solicitud {request_id}")
time.sleep(3)
print(f"Solicitud {request_id} completada")
hilos = []
for i in range(3):
hilo = threading.Thread(target=procesar_solicitud, args=(i,))
hilos.append(hilo)
hilo.start()
for hilo in hilos:
hilo.join()
print("Todas las solicitudes completadas")
En este código, se simulan las solicitudes aplicando espera de tres segundos para demostrar el procesamiento concurrente.
¿Cómo aplicar el paralelismo con Python?
Para implementar paralelismo, utilizamos multiprocessing, que permite la ejecución de procesos de manera paralela. Aquí tienes un ejemplo básico para calcular el cuadrado de números de forma simultánea:
import multiprocessing
def calcular_cuadrado(n):
return n * n
if __name__ == "__main__":
numeros = [1, 2, 3, 4, 5]
with multiprocessing.Pool() as pool:
resultados = pool.map(calcular_cuadrado, numeros)
print(resultados)
El uso del pool.map en el ejemplo asegura que cada número se procese en paralelo, proporcionando resultados inmediatos.
¿Cuándo elegir concurrencia sobre paralelismo?
- Concurrencia: Ideal para tareas que involucran entrada/salida de datos, ya que permite dividir y manejar las tareas asíncronamente.
- Paralelismo: Recomendado para procesos intensivos de cálculo que requieren potencia de procesamiento y pueden ser ejecutados de manera simultánea.
Estas técnicas no solo optimizan el rendimiento de tu aplicación, sino también mejoran su escalabilidad y eficiencia. Ahora que conoces las bases de la concurrencia y el paralelismo en Python, sigue explorando estas herramientas para dominar el desarrollo de aplicaciones eficientes y avanzadas.
¡Continúa aprendiendo y dominando Pyhton!