Запитання з тегом «volatile»

Летючий - це класифікатор, який використовується для визначення області зберігання даних (об'єкта, поля, змінної, параметра), яка "може змінюватися самостійно", тим самим забороняючи деякі оптимізації генератора коду. У деяких, але не всіх мовах, які розпізнають цей класифікатор, доступ до таких даних є безпечним для потоків.

22
Для чого корисне непостійне ключове слово
На роботі сьогодні я натрапив на volatileключове слово на Java. Не дуже знайомий з цим, я знайшов таке пояснення: Теорія та практика Java: Управління мінливістю З огляду на деталі, в яких ця стаття пояснює питання, про яке йдеться, ви коли-небудь користуєтесь ним, чи ви могли коли-небудь побачити випадок, коли ви …

9
Летючі проти замкнених проти замків
Скажімо, у класі є public int counterполе, до якого звертаються декілька потоків. Це intлише збільшується або зменшується. Для збільшення цього поля, який підхід слід використовувати і чому? lock(this.locker) this.counter++;, Interlocked.Increment(ref this.counter);, Змініть модифікатор доступу counterна public volatile. Тепер, коли я виявив volatile, я видалив багато lockтверджень і використання Interlocked. Але …


7
Яка різниця між атомною / летючою / синхронізованою?
Як атомні / летючі / синхронізовані працюють всередині? Яка різниця між наступними кодовими блоками? Код 1 private int counter; public int getNextUniqueIndex() { return counter++; } Код 2 private AtomicInteger counter; public int getNextUniqueIndex() { return counter.getAndIncrement(); } Код 3 private volatile int counter; public int getNextUniqueIndex() { return counter++; …

8
Летючі проти статичних на Java
Чи правильно сказати, що staticозначає одну копію значення для всіх об'єктів і volatileозначає одну копію значення для всіх потоків? У будь-якому випадку staticзначення змінної також буде одним значенням для всіх потоків, тоді навіщо нам це робити volatile?


4
Різниця між летючими та синхронізованими в Java
Мене цікавить різниця між оголошенням змінної як volatileі завжди доступом до змінної в synchronized(this)блоці на Java? Відповідно до цієї статті http://www.javamex.com/tutorials/synchronization_volatile.shtml можна сказати багато, і є багато відмінностей, а також деякі подібності. Мені особливо цікава ця інформація: ... доступ до мінливої ​​змінної ніколи не має можливості блокувати: ми лише завжди …

18
Чому летучий існує?
Що робить volatile ключове слово? У C ++ яку проблему вона вирішує? У моєму випадку я ніколи свідомо не потребував цього.
222 c++  volatile  c++-faq 

9
Чому енергонезалежність не вважається корисною в багатопотоковому програмуванні на C або C ++?
Як показано у цій відповіді, яку я нещодавно опублікував, я, мабуть, розгублений щодо корисності (або її відсутності) volatileв контекстах багатопотокового програмування. Моє розуміння таке: щоразу, коли змінна може бути змінена поза потоком контролю фрагмента коду, що отримує доступ до неї, ця змінна повинна бути оголошена такою volatile. Обробники сигналів, регістри …

8
Для чого використовується "нестабільне" ключове слово?
На цей питання є відповіді на Stack Overflow на російському : Ключове слово нестабільне в Java Я прочитав деякі статті про volatileключове слово, але не зміг зрозуміти його правильне використання. Скажіть, будь ласка, для чого він повинен використовуватися в C # та на Java?
130 c#  java  volatile 

5
Коли використовувати леткі з багатопоточною різьбою?
Якщо є два потоки, що мають доступ до глобальної змінної, то багато підручників кажуть, що робить цю змінну мінливою, щоб запобігти компілятору кешувати змінну в регістрі, і, таким чином, вона не оновлюється правильно. Однак два потоки, що мають доступ до спільної змінної, - це те, що вимагає захисту за допомогою …

4
Летучий чи дорогий?
Після прочитання кулінарної книги JSR-133 для письменників-компіляторів про реалізацію енергонезалежних, особливо в розділі "Взаємодія з атомними інструкціями", я вважаю, що для читання летючої змінної без оновлення вона потребує LoadLoad або LoadStore бар'єр. Далі на сторінці я бачу, що LoadLoad та LoadStore фактично не працюють на процесорах X86. Чи означає це, …

6
Ілюструє використання летючого ключового слова в C #
Я хотів би створити програму, яка наочно ілюструє поведінку volatileключового слова. В ідеалі це повинна бути програма, яка здійснює одночасний доступ до енергонезалежного статичного поля і яка отримує неправильну поведінку через це. Додавання мінливого ключового слова в ту саму програму має вирішити проблему. Це те, чого я не зумів досягти. …
88 c#  .net  volatile 

6
мінливий у порівнянні зі змінним у C ++
У мене питання про різницю між летким і змінним. Я помітив, що обидва ці два засоби означають, що їх можна змінити. Що ще? Це одне й те саме? Яка різниця? Де вони застосовуються? Чому пропонуються дві ідеї? Як використовувати їх по-різному? Дуже дякую.
85 c++  volatile  mutable 

13
Чи мінливе ключове слово C ++ вводить паркан пам'яті?
Я розумію, що volatileповідомляє компілятору про те, що значення може бути змінено, але для того, щоб виконати цю функціональність, чи потрібно компілятору вводити огорожу пам'яті, щоб він працював? Наскільки я розумію, послідовність операцій з нестабільними об’єктами не може бути впорядкована і повинна бути збережена. Це, мабуть, означає, що деякі огорожі …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.