Pregunta

Aprendí C ++ por un tiempo y todavía no encontré un buen libro que explicara qué son esas bestias. ¿Son características integrales de C ++? Si es así, ¿cómo es posible que solo se mencionen en un libro como The C ++ Programming Language de B.S. Si no es así, ¿dónde puede obtener información confiable sobre ellos? Preferiblemente un libro (no me gustan los tutoriales web), cómo definirlos, cómo usarlos, etc. Gracias por cualquier ayuda valiosa.

¿Fue útil?

Solución

Los bloqueos y las exclusiones mutuas son construcciones de concurrencia que se utilizan para garantizar que dos subprocesos no accedan a los mismos datos compartidos al mismo tiempo, logrando así la corrección.

El estándar actual de C ++ no presenta herramientas de concurrencia.

Aunque mencionó que prefiere los libros a los tutoriales en línea, Herb Sutter's La columna de concurrencia efectiva es definitivamente una lectura obligatoria.

También está el próximo libro de Anthony Williams llamado C ++ Concurrency en acción . Anthony Williams es el autor de la Boost.Thread biblioteca.

Otra biblioteca de subprocesos que vale la pena ver es TBB de Intel .

Otros consejos

Los bloqueos y las exclusiones mutuas no son parte del estándar actual de C ++, ya que tratan con la concurrencia que no es parte del estándar. Se incluyen en varias bibliotecas y varios sistemas operativos tienen diferentes formas de tratarlas (subprocesos POSIX vs. Windows). Si elige un libro sobre programación concurrente para C ++, probablemente encontrará lo que está buscando. Puede encontrar implementaciones para ellos en las bibliotecas boost y ACE.

Los hilos forman parte del estándar C ++ 0x. Aún no conozco ningún libro, pero wikipedia tiene una propaganda sobre las nuevas funciones de subprocesos aquí.

C ++ no está al tanto de los hilos en este momento, por lo que los hilos mutex, etc., no forman parte del lenguaje.
Normalmente, necesitaría usar bibliotecas específicas del sistema para subprocesos y mutex, como pthread library en Linux.
Tal vez las bibliotecas tipo pthread son demasiado parecidas a c, pero hay bibliotecas de C ++ que las envuelven en C ++, como ptypes o boost.

Son construcciones básicas que se utilizan para garantizar la corrección en programas paralelos. Se incluyen Boost y el nuevo estándar de C ++.

Puedo recomendar este libro, aunque no se centra en C ++: http: //www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916 .

Los bloqueos y las exclusiones mutuas (piense: exclusión mutua) permiten que los hilos cooperantes sincronicen el acceso a los recursos compartidos. Para una breve descripción general del concepto, lea el artículo de Wikipedia en exclusión mutua .

Estos conceptos no son parte del lenguaje C ++. El libro de O'Reilly pthreads sería una buena referencia para usted, suponiendo que esté en una plataforma POSIX . Para Windows, puede ir con Programación del sistema de Windows de Addison-Wesley.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top