Mogę się tutaj mylić. Jeśli wiesz inaczej, wyjaśnij to, ponieważ pomogłoby to wyjaśnić, dlaczego należałoby użyć wątku local ().
Wydaje się, że to stwierdzenie nie jest błędne: „Jeśli chcesz atomowo zmodyfikować wszystko, do czego inny wątek ma dostęp, musisz zabezpieczyć to blokadą”. Myślę, że to stwierdzenie jest -> skutecznie <- słuszne, ale nie do końca trafne. Pomyślałem, że termin „atomowy” oznacza, że interpreter Pythona utworzył fragment kodu bajtowego, który nie zostawiał miejsca na sygnał przerwania przesyłany do procesora.
Myślałem, że operacje atomowe to fragmenty kodu bajtowego Pythona, które nie dają dostępu do przerwań. Instrukcje Pythona, takie jak „running = True”, są niepodzielne. W tym przypadku nie musisz blokować procesora przed przerwaniami (uważam). Podział kodu bajtowego Pythona jest zabezpieczony przed przerwaniem wątku.
Kod Pythona, taki jak „thread_running [5] = True”, nie jest atomowy. Są tutaj dwa fragmenty kodu bajtowego Pythona; jeden, aby usunąć odniesienie do list () dla obiektu i inny fragment kodu bajtowego, aby przypisać wartość do obiektu, w tym przypadku „miejsce” na liście. Przerwanie można zgłosić -> pomiędzy <- dwoma kodami bajtowymi -> fragmentami <-. To było złe rzeczy.
Jak wątek local () ma się do „atomic”? Dlatego to stwierdzenie wydaje mi się mylące. Jeśli nie, czy możesz wyjaśnić?