Programación de Redes

Asincronía y paralelismo

De la programación paralela basada en threads al modelo asincrónico basado en tareas.

Tecnología

  • Task (C#)
  • async / await (C#)
  • Parallel.For, Parallel.ForEach, Interlocked (C#)

Temario

  • Multi-threading vs concurrencia vs paralelismo vs asincronía: definiciones y diferencias
  • Procesos o funciones CPU bound / IO bound, y su relación con la asincronía
  • Cómo pasar de threads a tasks
  • Task
    • Tasks vs threads: por qué usar uno u otro
    • CancellationToken
      • .IsCancellationRequested
      • OperationCanceledException
      • Pasar el token a una función asincrónica
      • CancelAfter (tiempo)
    • ThreadPool y su vínculo con las tasks
  • async / await
    • Ventajas
    • Cómo usarlos y qué hace el await
    • Métodos asincrónicos: dónde usarlos, métodos async de .NET, crear métodos async propios
    • Cómo devolver valores y cómo devolver "void"
  • Paralelismo
    • Parallel.For, Parallel.ForEach
    • Conexión con exclusión mutua: Interlocked (operaciones atómicas, por ejemplo .Add)
    • Importancia de usar mutua exclusión

Clases

  1. Task y async/await

    Task, async/await, cancelación y paralelismo de datos.

En esta página