Uso <thread> <atomic> <mutex>
etc. en mi código, que incluye varios algoritmos sin bloqueos. Me estoy dirigiendo (eventualmente) a un entorno Linux. He estado desarrollando con la versión Beta de Visual Studio 2011, que si bien carecía de características horribles en otras características de C++ 11, parece ser la única herramienta que implementa las funciones simultáneas.Concurrent C++ 11 - ¿Qué cadenas de herramientas se pueden usar?
Ver C++ 11 de soporte aquí:
Ahora bien, si los otros simplemente carecen de una biblioteca que contiene las C++ 11 características concurrentes, puedo utilizar simplemente just::thread, sin embargo, tanto clang como gcc responden "no" al modelo de memoria C++ 11, que al menos parece ser compatible con C++ visuales. No estoy exactamente seguro de cuál sería el efecto de esto, probablemente optimizando el código aparentemente libre de efectos secundarios, entre otras cosas erróneas.
Si por el momento evito completamente las compilaciones optimizadas y solo compilo compilaciones de depuración sin optimizaciones habilitadas, ¿es razonable usar la cadena de herramientas Clang o GCC?
Mi conjetura inmediata es que si usas 'just :: thread', funcionará bien. Utiliza las primitivas nativas (Posix o Win32) para aplicar cosas como ordenar, por lo que creo que un compilador tendría que estar bastante roto en general para que fallara. –
Probablemente deberías incluir una etiqueta relacionada con subprocesos múltiples en tu lista, Anthony Williams aparece regularmente aquí, así que si tienes la suerte lo notará. Creo que creó 'just :: thread' para que sea multiplataforma, así que no esperaría ningún problema. –