Dostęp atomowy (instrukcje atomowe) (2/3) | |
Kod asemblera dla instrukcji g_::++ : | |
MOV EAX, [G X] |
; Pobranie wartości g x do rejestru |
INC EAX |
; Zwiększenie zawartości rejestru |
MOV [G__X] , EAX |
; Zapisanie nowej wartości zmiennej g x |
Przypadek IDEALNY: | |
MOV EAX, [G_X] |
; Wątek 1 |
INC EAX |
; Wątek 1 |
MOV [G__X] , EAX |
; Wątek 1 |
MOV EAX, [G_X] |
; Wątek 2 |
INC EAX |
; Wątek 2 |
MOV [G__X] , EAX |
; Wątek 2 |
Zmienna g_x ma |
wartość 2 |
Programowanie współbieżne w systemach operacyjnych Windows NT/2000
© Marek Nowak