patrones patron para estrategia ejemplo diseño c# .net multithreading design-patterns parallel-processing

para - patron estrategia c#



¿Patrones de programación paralelos para C#? (5)

Aquí hay algunas opciones.

  • F # tiene un soporte realmente bueno para código concurrente
  • LINQ paralelo y Tareas en .NET 4 son abstracciones útiles.

Consulte el blog pfxteam para obtener información adicional sobre las nuevas herramientas de programación paralela en .NET 4.

Con el lanzamiento de Intel de un procesador Hexa-Core (6) para el escritorio, parece que ya no podemos esperar a que Microsoft haga que la programación de muchos núcleos sea "fácil". Acabo de pedir una copia del libro de Joe Duffy ''Programación simultánea en Windows''. Sin embargo, parece que este es un buen lugar para comenzar. Espero que algunos de ustedes que han estado apuntando a múltiples / muchos sistemas centrales me señalaran algunos buenos recursos que han ayudado o habrían ayudado en sus proyectos.

Usted ha dado algunas respuestas geniales, pero permítame agregar a lo que quiero decir con "buenos recursos". El hecho de que tengamos 6,12 o 48 núcleos no significa que nuestras aplicaciones se beneficien al intentar usarlos todos. Sigo escuchando que el paradigma de programación actual va a cambiar cuando tengamos una gran cantidad de núcleos en nuestros sistemas.

Qué blogs / libros debo leer para comprender mejor los patrones y cuándo usarlos. ¿Hay buenos podcasts o webcasts que puedan ayudar?

Aquí hay algunos enlaces que he encontrado interesantes:

Generalmente útil:

Multihilo:



Estoy de acuerdo con Brian y rwwilden en usar la biblioteca paralela de tareas. Si bien TPL es una función .NET 4, si está apuntando a 3.5, está disponible como parte de las Extensiones reactivas para .NET (Rx) .


Hay una serie de artículos de Reed Copsey que son muy completos y exhaustivos. Comienza con los principios básicos de programación paralela y continúa con la implementación de soluciones utilizando la nueva biblioteca paralela de tareas en .NET4.


Tenga en cuenta que en medio de todo esto, no todas las aplicaciones que escriba se beneficiarán necesariamente de la programación paralela. Los sistemas operativos ya son capaces de lanzar diferentes procesos en diferentes núcleos, lo que significa que su aplicación de un solo subproceso ya se beneficiará del hecho de que no tiene que compartir su núcleo con tantos otros subprocesos y procesos.