Schreiben Sie C ++ 11 zunächst nicht ab. Die Parallelitätsarbeit für die neuen Standards wurde unter dem Dach von C ++ 11 durchgeführt und dann mit dem ausdrücklichen Ziel, kompatibel zu sein, in C11 importiert. Obwohl es einige syntaktische Unterschiede gibt (z. B. weil C einfach keine Vorlagen oder Funktionsüberladung aufweist), sind sie semantisch vom Design her identisch. Für "Beweise" dafür kann man die WG14-Papiere überprüfen. Z.B:
und Referenzen darin. Weitere finden Sie auf der
Open Std Website
Nun zu Ihren Fragen:
Was ist das verbesserte Speichersequenzierungsmodell?
Die offensichtliche Antwort ist, dass es geändert wurde, um mehrere Threads und deren Interaktion zu berücksichtigen. Eine etwas längere Antwort finden Sie in C ++ 11, in dem ein standardisiertes Speichermodell eingeführt wurde. Was bedeutet das? Und wie wird sich das auf die C ++ - Programmierung auswirken? das wurde schon in den Kommentaren erwähnt. Für ein gründliches Verständnis ist eine Stackoverflow-Antwort möglicherweise nicht der richtige Ort (noch weniger eine Frage mit mehreren Unterfragen!). Glücklicherweise unterhält Hans Boehm eine sehr gute Seite mit interessanten Links zum weiteren Lesen (denken Sie auch hier daran, dass die Speichermodelle C11 und C ++ 11 semantisch identisch sind).
Ich hoffe ich habe nichts verpasst?
Zusammen mit dem Speichermodell scheint Ihre Liste die Parallelitätszusätze in C11 abzudecken. Für andere Änderungen hat Wikipedia eine Liste ; Ich kann mir nichts einfallen lassen, was die Wikipedia-Liste übersehen hat.
Da die Standardbibliothek selbst jetzt alle für Multi-Threading erforderlichen Funktionen bereitstellt (bereitstellt), wären POSIX und solche Bibliotheken (für Multi-Threading-Unterstützung) in Zukunft nicht mehr erforderlich.
Ja, es wird einen Bedarf für sie geben. Erstens wird niemand den gesamten vorhandenen Code neu schreiben, der die verschiedenen vorhandenen Thread-APIs verwendet. Zweitens ist / wird die C (++) 11-Thread-Bibliothek höchstwahrscheinlich als Wrapper um die verschiedenen nativen Thread-Bibliotheken implementiert. Zum Teufel gibt es sogar eine dokumentierte Möglichkeit, einen Zeiger auf den zugrunde liegenden nativen Thread abzurufen, falls etwas getan werden muss, das über das hinausgeht, was die C (++) - Thread-Bibliothek unterstützt. Stellen Sie sich die C (++) 11-Thread-Bibliothek eher wie einen tragbaren Wrapper mit dem kleinsten gemeinsamen Nenner um die verschiedenen nativen Thread-Bibliotheken vor.
Welche Compiler unterstützen die oben genannten Funktionen? Gibt es Hinweise auf Zeitpläne, wann diese unterstützt werden? Ich erinnere mich, dass es für C ++ 11 einen Link für Compiler-Unterstützung und -Funktionen gab, vielleicht so etwas?
Ich habe keine detaillierte Liste gesehen, es scheint nicht so viel Aufsehen um C11 zu geben wie in C ++ 11. Es gibt eine kurze Mitteilung für das kommende GCC 4.7 hier: http://gcc.gnu.org/gcc-4.7/changes.html . Informationen zur Parallelitätsunterstützung finden Sie auf der C ++ 11-Statusseite hier unter http://gcc.gnu.org/projects/cxx0x.html . Unter http://gcc.gnu.org/wiki/Atomic finden Sie auch einige Hinweise zum aktuellen Status und zu den Plänen für GCC (laut dieser Seite ist stdatomic.h verfügbar). Für andere Compiler gibt es hier eine schöne Liste des C ++ 11-Status für verschiedene Compiler http://www.aristeia.com/C++11/C++11FeatureAvailability.htm. Über die dortigen Links kann der Status der Parallelitätsunterstützung überprüft werden. Unter der Annahme, dass der betreffende Anbieter die Unterstützung von C11 plant, ist die C11-Parallelitätsunterstützung dann wahrscheinlich auf ungefähr demselben Niveau.