Sie können über Read After Write (RAW), Write after Write(WAW) and Write After Read (WAR) hazards nachlesen, um mehr über dieses Thema zu erfahren. Diese Gefahren beziehen sich auf Pipeline-Prozesse, aber es ist wirklich das gleiche Problem, das bei Multi-Threading auftritt. Es bedeutet im Grunde, dass zwei verschiedene Threads den gleichen Speicherort im Speicher aktualisieren, und wenn Sie von diesen Updates in einer bestimmten Reihenfolge abhängig sind, werden Sie möglicherweise überrascht sein, dass Sie die Reihenfolge, in der die Updates auftreten, nicht garantieren können.
Zum Beispiel, wenn Sie zwei Aussagen haben:
x = y + z;
r = x + z;
in einem einzigen Thread, dann haben Sie kein Problem, da der Wert von r immer konsistent sein wird. In mehreren Threads ist es jedoch möglich, dass eine der Anweisungen zuerst auftritt und der Wert von r schwerer vorhersagbar ist.
+1 für den Link –