Share via


Programación Concurrente

La programación paralela o concurrente es un tema muy interesante y que proporciona mucha potencia a los desarrollos, pero también hay que tener cierto cuidado. En ocasiones podemos obtener mejor rendimiento pero en otras ocasiones la ganancia es cero o incluso podemos perder rendimiento sino escogemos su uso en los escenarios adecuados.

Actualmente disponemos de diversas opciones para hacer uso de programación concurrente en entornos Windows:

  • Programación Multithreading en Win32 mediante el API Nativo.

Haciendo uso del API Win32 disponemos de todas las opciones proporcionada por el sistema operativo, incluyendo el uso de Threads, Eventos, Mutex, Secciones Criticas y otros objetos, siendo la principal ventaja de esta opción la posibilidad de hacer uso de elementos nativos novedosos en cada versión del sistema operativo, y por contra disponemos de cierta complejidad en el API para realizar las tareas más comunes.

  • Programación con .NET haciendo uso de System.Threading

El modelo de programación de .NET nos proporciona la mayor parte de las opciones disponibles para utilizar en nuestras aplicaciones: Threads, Eventos, Mutex, Monitores (Secciones Criticas), junto con otras herramientas muy utiles como los Delegados y el ThreadPool.

  • Programación con las Extensiones Parallel en .NET

Mediante estas extensiones podemos aprovechar la programación paralela en operaciones relacionadas con Busquedas, Ordenación, Ejecución de Tareas en paralelo, etc, de una manera abstracta que nos oculta la complejidad.

En estos Blog y Direcciones hay información muy util relacionada con la programación paralela y muchos de los conceptos técnicos que he comentado. En posteriores entradas, iré comentando más detalladamente aspectos concretos de cada una de las areas para poder tratarlas con más detalle.

http://blogs.msdn.com/pfxteam/

http://blogs.msdn.com/nativeconcurrency/

http://www.vsj.co.uk/articles/display.asp?id=704

http://blogs.msdn.com/pfxteam/