Re: Mutex nutzlos?
Verfasst: 12.08.2012 15:53
Danke für die Richtigstellung. Hab das länger nicht mehr gemacht und das jetzt etwas durcheinander geworfen. Du hast natürlich Recht.DarkDragon hat geschrieben:Atomic? Volatile wäre das doch, was du eben mit dem "höheren, gemeinsamen Cache" und "frisch aus dem Arbeitsspeicher" meinst. Aber dann braucht man immer noch atomarität der Zugriffe (locks drumrum), da ja auch echt parallel damit operiert werden kann, wodurch die Aussage über atomic wieder richtig wird. Atomic sichert jedoch nur Einzelzugriffe ab!NicTheQuick hat geschrieben:Selbst da kann es passieren, dass zwei Threads aus ein und der selben Variablen unterschiedliche Werte lesen, da jeder Thread auf einem anderen Core laufen kann und jeder Core seinen eigenen Cache hat. Ist bei beiden Cores diese Variable im Cache und ändert sie einer von beiden Threads, wird sie normalerweise nicht direkt in den Arbeitsspeicher geschoben oder in einen höheren gemeinsamen Cache, sodass der andere Thread den aktuellen Wert bekommen würde. Deswegen kann man normalerweise Variablen als atomic deklarieren. Diese werden nämlich immer frisch aus dem Arbeitsspeicher geholt und nach Änderung zurück in ihn geschrieben.ts-soft hat geschrieben:Naja, ich meinte auch nur die Lesezugriffe, hätte mich da wohl genauer ausdrücken müssen.