Was ist das C++11-Speichermodell und wie beeinflusst es die Multithread-Programmierung?
Hallo zusammen! Ich habe angefangen, Multithreading in C++ zu lernen, und bin dabei auf den Begriff "memory model" gestoßen, der im C++11-Standard eingeführt wurde. Ehrlich gesagt verstehe ich nicht ganz, was das bedeutet und wozu es gut ist.\n\nFrüher habe ich einfache Singlethread-Programme geschrieben, und mir schien alles mit dem Speicher klar: Variablen liegen im RAM, der Prozessor liest und schreibt sie. Aber als ich versuchte, ein einfaches Beispiel mit zwei Threads zu schreiben, bekam ich seltsame Probleme. Hier ist der Code:\n\n```cpp\n#include \n#include \n\nbool flag = false;\nint value = 0;\n\nvoid writer() {\n value = 42;\n flag = true;\n}\n\nvoid reader() {\n while (!flag) {}\n std::cout << "Value: " << value << std::endl;\n}\n\nint main() {\n std::thread t1(writer);\n std::th
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs