¿Cuáles son algunos buenos recursos para aprender programación con hilos?

votos
30

Con el aumento de las CPU multinúcleo en el escritorio, las habilidades de subprocesamiento múltiple se convertirán en un activo valioso para los programadores. ¿Puede recomendar algunos buenos recursos (libros, tutoriales, sitios web, etc.) para un programador que está buscando aprender sobre programación con hilos?

Publicado el 05/08/2008 a las 16:42
fuente por usuario
En otros idiomas...                            


17 respuestas

votos
17

Eche un vistazo a " The Free Lunch Is Over " de Herb Sutter y luego a su serie de artículos sobre Concurrencia Efectiva .

Respondida el 05/08/2008 a las 17:02
fuente por usuario

votos
10

Joseph Albahari escribió una buena visión general de Threading en C # aquí:

http://www.albahari.com/threading/

Respondida el 18/08/2008 a las 22:51
fuente por usuario

votos
6

Honestamente, nunca lo leí yo mismo, pero la Programación concurrente en Java es un libro que he escuchado recomendado por varias personas.

Respondida el 05/08/2008 a las 16:47
fuente por usuario

Respondida el 27/08/2008 a las 13:20
fuente por usuario

votos
3

Escribo sobre multiprocesamiento y concurrencia en C ++ en mi blog . También estoy escribiendo un libro sobre concurrencia en C ++: C ++ Concurrency in Action .

Respondida el 09/10/2008 a las 13:56
fuente por usuario

votos
2

¡Es específico de Delphi, pero no hay ninguna razón por la cual el concepto no se aplicaría a ningún otro idioma!

Tutorial de Multi Threading

Respondida el 01/10/2008 a las 17:48
fuente por usuario

votos
2

Mantengo un linkblog para artículos de concurrencia, blogs y proyectos en:

http://concurrency.tumblr.com

Normalmente publico un enlace o dos por día sobre una variedad de temas (hilos, actores, bloqueo, programación paralela) en una variedad de entornos (Erlang, Java, Scala, .NET, C ++, Ruby, Python, etc.).

Respondida el 22/09/2008 a las 03:22
fuente por usuario

votos
2

Para una gran guía y referencia para la programación de concurrencia en C # (o .NET en general), recomendaría el artículo de MSDN What Every Dev Must Know About Multithreaded Apps de Vance Morrison en MSDN. Contiene una gran cantidad de información de mejores prácticas y advertencias sobre el desarrollo de múltiples hilos

Respondida el 21/08/2008 a las 13:06
fuente por usuario

votos
2

He leído (la mayoría de) Java Concurrency in Practice por Brian Goetz, que es muy bueno.

Obviamente, hay un tema basado en Java que se ejecuta en el libro (utilizando implementaciones específicas de subprocesos, bloqueos, etc.), pero prácticamente todos los principios se pueden aplicar a otros idiomas.

La página de inicio del autor contiene una lista de los artículos que ha escrito, algunos de los cuales incluyen temas relacionados. Tal vez comiences allí y si te gusta su estilo, compra el libro.

Respondida el 21/08/2008 a las 12:39
fuente por usuario

votos
1

Los sitios web de fabricantes de CPU tienen un contenido interesante:

http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel

http://software.intel.com/en-us/multi-core

También la biblioteca de enhebrar opensource de Intel tiene algunas buenas referencias:

http://www.threadingbuildingblocks.org/

Respondida el 26/09/2008 a las 13:21
fuente por usuario

votos
1

Para un tratamiento rico y completo del tema, con un buen equilibrio entre la informática y la práctica, recomiendo The Art of Multiprocessor Programming . Muchos ejemplos están en código orientado a objetos, es decir, Java, con otros idiomas dispersos por todas partes. Solo depende del tema que se cubre. Lo que realmente amo de este libro es que analiza cómo los algoritmos comunes deberían implementarse en un diseño concurrente. Por supuesto, ¡hay mucho más!

Para conceptos generales y un tratamiento de pthreads, realmente me gusta la Programación con POSIX Threads . Siendo la biblioteca y API que es, está en C.

Para los desarrolladores de Windows y C #, echa un vistazo al blog de Joe Duffy . Joe trabaja en bibliotecas paralelas, infraestructura y modelos de programación en la División de Desarrolladores de Microsoft. Tiene un libro en noviembre de 2008 titulado Programación concurrente en Windows ( enlace de Amazon ).

Además, no se pierda el blog del Padrino: Sutter's Mill de Herb Sutter . Él tiene enlaces a todos sus artículos en el Dr. Dobb's Journal y más. Haga clic en su categoría Concurrencia .

Respondida el 10/09/2008 a las 05:07
fuente por usuario

votos
1

Si quieres probar una versión muy paralela de una tarea simple o ver soluciones reales, podrías hacer algo peor que mirar el proyecto del buscador ancho . Básicamente se trata de cómo hacer correspondencias de expresiones regulares paralelas de archivos de registro de manera eficiente, pero tratando de agregar la menor cantidad de código posible.

Los participantes han enviado soluciones en muchos idiomas diferentes y se publican los resultados de rendimiento . El proyecto original ya ha finalizado y ahora hay un amplio buscador 2 que está llevando a cabo el trabajo.

CodingHorror tiene una buena introducción al buscador amplio .

Respondida el 27/08/2008 a las 13:12
fuente por usuario

votos
1

Creo que Boost.Threads es una gran biblioteca de concurrencia de C ++ para aprender, especialmente si solo quieres comenzar a escribir aplicaciones multiproceso. El código es muy sucinto y fácil de entender, además el próximo estándar de C ++ probablemente incluirá una biblioteca de subprocesos basada en Boost.Threads (tutorial: http://www.ddj.com/cpp/184401518 )

Respondida el 21/08/2008 a las 21:46
fuente por usuario

votos
1

No sé exactamente lo que estás buscando, pero si estás haciendo el desarrollo de WindowsForms, la siguiente publicación de blog vale la pena leer cada minuto: WinForms UI Thread Invoca: Una revisión en profundidad de Invoke / BeginInvoke / InvokeRequred

Respondida el 21/08/2008 a las 13:11
fuente por usuario

votos
1

El lenguaje de programación de Erlang proporciona un estilo fácil de usar de programación simultánea. Puede que en realidad nunca use Erlang, pero los conceptos son transportables a otros idiomas. Es posible que desee leer el libro Programming Erlang: Software for a concurrent World .

Los fanáticos de la programación funcional afirman que no hay necesidad de aprender nada nuevo. Solo use un lenguaje funcional puro, y el compilador o intérprete automáticamente lo paralelizará todo. Por lo que es posible que desee aprender Haskell, OCaml u otro lenguaje funcional.

Respondida el 13/08/2008 a las 17:46
fuente por usuario

votos
1

http://www.cilk.com/multicore-e-book/

Esa es una buena descripción general de la situación, si está buscando tutores y libros, sería mejor especificar un idioma como punto de partida para poder usar algún código.

Respondida el 05/08/2008 a las 16:48
fuente por usuario

votos
0

Si trabaja con C #, el libro "C # 2008 and 2005 rosded programming", por Gaston C. Hillar - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and- 2005-threaded-programming / book , te ayudará. Muy recomendable para los programadores de C #, ya que puedes descargar el código con ejemplos divertidos que explotan tu computadora multinúcleo. El libro es una buena guía con mucho código para practicar. Cuenta historias mientras explica los conceptos más difíciles.

Respondida el 05/02/2009 a las 03:40
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more