0% encontró este documento útil (0 votos)
2 vistas11 páginas

Programacion Multihilos

La programación multihilos en C# .NET permite la ejecución simultánea de múltiples tareas dentro de un mismo programa, mejorando el rendimiento y la eficiencia. Aunque ofrece ventajas como un mejor uso del CPU y una experiencia de usuario más fluida, también presenta desventajas como mayor complejidad en el desarrollo y problemas de sincronización. Se presentan ejemplos de código que ilustran la creación y gestión de hilos en aplicaciones C#.

Cargado por

natansanchez732
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas11 páginas

Programacion Multihilos

La programación multihilos en C# .NET permite la ejecución simultánea de múltiples tareas dentro de un mismo programa, mejorando el rendimiento y la eficiencia. Aunque ofrece ventajas como un mejor uso del CPU y una experiencia de usuario más fluida, también presenta desventajas como mayor complejidad en el desarrollo y problemas de sincronización. Se presentan ejemplos de código que ilustran la creación y gestión de hilos en aplicaciones C#.

Cargado por

natansanchez732
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

P ROGRAMACIÓN

MULTIHILOS
C# .NET

Conceptos, características, ventajas y ejemplos

Albin N. Lopez (2024-1116)

Threading · Concurrency · Parallelism · Synchronization


INTRODUCCIÓN

¿Qué es la
Programación Multihilos?

Permite ejecutar varias tareas al mismo tiempo dentro de un


mismo programa.

Cada tarea se ejecuta en un hilo (thread), lo que mejora el


rendimiento y la eficiencia de las aplicaciones modernas. MAYOR RENDIMIENTO
MEJOR EFICIENCIA
MEJOR EXPERIENCIA
PROCESOS

Definición de Procesos
Un proceso es un programa en ejecución dentro del sistema operativo.

Espacio propio de memoria Recursos asignados Uno o varios hilos

Cada proceso tiene su propia área aislada de El proceso puede contener múltiples threads de
Archivos abiertos, handles del SO, descriptores
RAM ejecución
HILOS / THREADS

Definición de Hilos
Un hilo (thread) es la unidad más pequeña de ejecución dentro de un proceso.

Thread 1

Thread 2

Thread 3

✓ Memoria compartida | ✓ Ejecución simultánea | ✓ Más ligero que un proceso


MULTIHILOS

Programación
Multihilos
×2-8 N
Ganancia de rendimiento típica Hilos en paralelo por CPU core

Permite que un programa ejecute varios hilos al mismo


tiempo.

Mejora la velocidad, el rendimiento y la capacidad de SINGLE THREAD


respuesta de las aplicaciones.

MULTI-THREAD
CONCEPTOS

Conceptos Fundamentales

Concurrencia Paralelismo Sincronización

Múltiples tareas progresan al mismo tiempo Ejecución simultánea real en múltiples Coordinación de hilos para acceso ordenado
compartiendo recursos. núcleos del CPU. a recursos compartidos.

Race Condition Lock / Mutex Deadlock

Error cuando dos hilos acceden al mismo Mecanismo que garantiza acceso exclusivo a Bloqueo mutuo donde dos hilos esperan al
dato sin control. un recurso. otro indefinidamente.
VENTAJAS

Ventajas
Mejor uso del CPU
Los núcleos trabajan en paralelo sin tiempos muertos.

Mayor rendimiento
Las tareas se completan en menos tiempo total.

Múltiples tareas simultáneas


Descarga en segundo plano sin bloquear la UI.

Mejor experiencia de usuario


La app responde al usuario mientras trabaja en segundo plano.
DESVENTAJAS

Desventajas
Mayor complejidad en el desarrollo
El código multihilo es más difícil de depurar y mantener.

Problemas de sincronización
Acceso concurrente a datos compartidos puede generar bugs.

Condiciones de carrera
Resultados inesperados cuando los hilos compiten por recursos.

Riesgo de deadlocks
Hilos bloqueados mutuamente que nunca liberan los recursos.
CÓDIGO C#

Ejemplo: Primer Hilo


[Link]

1 using System;
2 using [Link];
3
4 class Program
5 {
6 static void Tarea()
7 {
8 [Link]("Hilo ejecutándose");
9 }
10
11 static void Main()
12 {
13 Thread hilo = new Thread(Tarea);
14 [Link]();
15 }
16 }
CÓDIGO C#

Ejemplo: Múltiples Hilos


[Link]
¿Cómo funciona?
1 using System;
2 using [Link];
3
4 class Program Se definen dos métodos: Trabajo1 y
5 { Trabajo2.
6 static void Trabajo1()
7 {
Cada uno imprime mensajes en un loop de 5
8 for(int i=0;i<5;i++)
iteraciones.
9 [Link]("Hilo 1\n");
10 }
11 static void Trabajo2()
Se crean dos objetos Thread apuntando a
12 {
cada método.
13 for(int i=0;i<5;i++)
14 [Link]("Hilo 2\n");
15 } [Link]() y [Link]() lanzan los hilos en
16 static void Main() paralelo.
17 {
18 Thread t1=new Thread(Trabajo1);
19 Thread t2=new Thread(Trabajo2); El orden de salida no está garantizado —
20 [Link](); [Link](); depende del scheduler del SO.
21 }
22 }
C O N C L U S I Ó N

Programación Multihilos
Mejora el rendimiento de las aplicaciones al ejecutar tareas en paralelo.

Requiere correcta gestión de sincronización para evitar errores.

Threading Concurrency Parallelism C# .NET

También podría gustarte