Dlaczego potrzebujemy prefiksu blokady przed CMPXCHG [duplikat]
To pytanie ma już odpowiedź tutaj:
Czy X86 CMPXCHG jest atomowy, jeśli tak, dlaczego potrzebuje LOCK? 3 odpowiedzidlaczego potrzebujemy prefiksu blokady przed CMPXCHG w architekturze Intel. proszę zobaczyć w celu odniesieniahttp: //courses.engr.illinois.edu/ece390/archive/spr2002/books/labmanual/inst-ref-cmpxchg.htm
co nie jestem pewien, jakie są konsekwencje, jeśli nie używam blokady. ponieważ między załadowaniem wartości do eax a przekroczeniem LOCK CMPXCHG wartość można zmienić niezależnie od prefiksu blokady, ponieważ ładowanie wartości do eax i LOCK CMPXCHG to dwie instrukcje.
Chcę powiedzieć, że jeśli nie używam CMPXCHG, najgorszą rzeczą, jaka może się zdarzyć, jest to, że muszę ponownie zakręcić.