Pytania otagowane jako volatile

Volatile to kwalifikator używany do definiowania obszaru przechowywania danych (obiektu, pola, zmiennej, parametru), który „może się zmieniać samodzielnie”, uniemożliwiając w ten sposób niektóre optymalizacje generatora kodu. W niektórych, ale nie we wszystkich językach, które rozpoznają ten kwalifikator, dostęp do takich danych jest bezpieczny wątkowo.

22
Do czego służy zmienne słowo kluczowe
W pracy dzisiaj spotkałem volatilesłowo kluczowe w Javie. Nie znając go zbyt dobrze, znalazłem wyjaśnienie: Teoria i praktyka Java: zarządzanie zmiennością Biorąc pod uwagę szczegółowość, w której artykuł wyjaśnia dane słowo kluczowe, czy kiedykolwiek go używałeś, czy widziałeś przypadek, w którym możesz użyć tego słowa kluczowego we właściwy sposób?

9
Lotne vs. Zablokowane vs. Zablokowane
Powiedzmy, że klasa ma public int counterpole, do którego dostęp ma wiele wątków. Jest intto tylko zwiększane lub zmniejszane. Aby zwiększyć to pole, które podejście należy zastosować i dlaczego? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Zmień modyfikator dostępu counterna public volatile. Teraz, gdy odkryłem volatile, usunąłem wiele lockinstrukcji i ich użycie Interlocked. …


7
Jaka jest różnica między atomowym / lotnym / zsynchronizowanym?
Jak atomowy / lotny / zsynchronizowany działa wewnętrznie? Jaka jest różnica między następującymi blokami kodu? Kod 1 private int counter; public int getNextUniqueIndex() { return counter++; } Kod 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Kod 3 private volatile int counter; public int getNextUniqueIndex() { return …

8
Zmienna vs statyczna w Javie
Czy słusznie jest powiedzieć, że staticoznacza to jedną kopię wartości dla wszystkich obiektów ivolatile oznacza jedną kopię wartości dla wszystkich wątków? W każdym razie staticwartość zmiennej będzie również jedną wartością dla wszystkich wątków, więc po co mamy iść volatile?


4
Różnica między zmienną i zsynchronizowaną w Javie
Zastanawiam się nad różnicą między deklarowaniem zmiennej jako volatilei zawsze uzyskiwaniem dostępu do zmiennej w synchronized(this)bloku w Javie? Zgodnie z tym artykułem http://www.javamex.com/tutorials/synchronization_volatile.shtml jest wiele do powiedzenia i istnieje wiele różnic, ale także pewne podobieństwa. Szczególnie interesuje mnie ta informacja: ... dostęp do zmiennej ulotnej nigdy nie ma możliwości zablokowania: …


9
Dlaczego nietrwałość nie jest uważana za użyteczną w programowaniu wielowątkowym w C lub C ++?
Jak wykazałem w odpowiedzi, którą niedawno opublikowałem, wydaje mi się, że jestem zdezorientowany użytecznością (lub jej brakiem) volatilew kontekstach programowania wielowątkowego. Rozumiem, że za każdym razem, gdy zmienna może zostać zmieniona poza przepływem kontroli fragmentu kodu uzyskującego do niej dostęp, ta zmienna powinna być zadeklarowana jako taka volatile. Takie sytuacje …

5
Kiedy używać lotnych przy wielowątkowości?
Jeśli istnieją dwa wątki uzyskujące dostęp do zmiennej globalnej, wiele samouczków mówi, że zmienna jest ulotna, aby zapobiec buforowaniu zmiennej przez kompilator w rejestrze, a tym samym niepoprawnej aktualizacji. Jednak dwa wątki, które uzyskują dostęp do wspólnej zmiennej, są czymś, co wymaga ochrony przez mutex, prawda? Ale w takim przypadku …

8
Do czego służy słowo kluczowe „volatile”?
На этот вопрос есть ответы на Stack Overflow на русском : Ключевое слово volatile в Java Przeczytałem kilka artykułów na temat tego volatilesłowa kluczowego, ale nie mogłem znaleźć jego prawidłowego użycia. Czy mógłbyś mi powiedzieć, do czego ma służyć w C # i Javie?
130 c#  java  volatile 

4
Czy lotność jest droga?
Po przeczytaniu książki kucharskiej JSR-133 dla autorów kompilatorów o implementacji ulotnych, szczególnie sekcji "Interakcje z instrukcjami Atomic", zakładam, że odczyt zmiennej ulotnej bez aktualizacji wymaga LoadLoad lub bariery LoadStore. W dalszej części strony widzę, że LoadLoad i LoadStore skutecznie nie działają na procesorach X86. Czy to oznacza, że ​​ulotne operacje …

6
Zilustrowanie użycia słowa kluczowego volatile w C #
Chciałbym napisać mały program, który wizualnie ilustruje zachowanie volatilesłowa kluczowego. Idealnie, powinien to być program, który wykonuje równoczesny dostęp do nieulotnego pola statycznego i który z tego powodu uzyskuje nieprawidłowe zachowanie. Dodanie słowa kluczowego volatile w tym samym programie powinno rozwiązać problem. To coś, czego nie udało mi się osiągnąć. …
88 c#  .net  volatile 

6
nietrwałe i zmienne w C ++
Mam pytanie o różnicę między zmiennymi a zmiennymi. Zauważyłem, że oba oznaczają, że można to zmienić. Co jeszcze? Czy są tym samym? Co za różnica? Gdzie mają zastosowanie? Dlaczego zaproponowano te dwa pomysły? Jak ich używać w inny sposób? Wielkie dzięki.
85 c++  volatile  mutable 

13
Czy słowo kluczowe volatile w C ++ wprowadza ogrodzenie pamięci?
Rozumiem, że volatileinformuje kompilator, że wartość może ulec zmianie, ale czy aby wykonać tę funkcję, kompilator musi wprowadzić ogrodzenie pamięci, aby działało? Z mojego zrozumienia, sekwencji operacji na obiektach ulotnych nie można zmienić i należy ją zachować. Wydaje się to sugerować, że niektóre ogrodzenia pamięci są konieczne i nie ma …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.