|
|
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
А то нифига не понял зачем оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 16:52:52 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Типа synchronized на переменную ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 17:03:07 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Тоесть в данный момент работать с переменной может только один поток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 17:08:21 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Объявление переменной volatile гарантирует, что операция присвоения будет атомарна (это не так для double и long), а так же, что значение переменной не будет кешироваться (актуально для многопроцессорных машин). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 18:12:12 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Большое спасибо. Понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 19:59:18 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Кувалдин РоманТипа synchronized на переменную ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== хм, имхо не совсем правильно. как считаете вот этот код треадсейф? Код: java 1. 2. 3. 4. 5. 6. 7. 8. То есть вы уверены, что при попытке более одного одного потока вызвать метод nextSerialNumber() у всех потоков будут разные возвращаемые значения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:22:59 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Более древних тем про volatile не нашлось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:27:04 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
roibush, Странно, только сейчас почему то по rss от ibm пришло http://www.ibm.com/developerworks/library/j-concurrencybugpatterns/ как раз для вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:29:35 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Я делал краш-тест. Вобщем volatile можете использовать только для булевых переменных. Все остальные (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:31:57 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
maytonЯ делал краш-тест. Вобщем volatile можете использовать только для булевых переменных. Как на счет byte? :) maytonВсе остальные (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. При чем тут атомарность? Volatile гарантирует видимость. С атомарностью никак не связано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:34:08 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Нет. Byte Не тестировал. Собственно это была попытка перенести С-шный опыт на Java. Возможно от этого и не очень удачная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 13:36:14 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
BlazkowiczmaytonЯ делал краш-тест. Вобщем volatile можете использовать только для булевых переменных. Как на счет byte? :) maytonВсе остальные (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. При чем тут атомарность? Volatile гарантирует видимость. С атомарностью никак не связано. Все верно! гарантирует только видимость, но не атомарность! Я лично не могу хороший придумать пример, где можно юзать Volatile. кто нить может подсказать таковой? плиз :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 14:01:20 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
roibushBlazkowiczпропущено... Как на счет byte? :) пропущено... При чем тут атомарность? Volatile гарантирует видимость. С атомарностью никак не связано. Все верно! гарантирует только видимость, но не атомарность! Я лично не могу хороший придумать пример, где можно юзать Volatile. кто нить может подсказать таковой? плиз :) Есть большая задача(вроде поиска в графе), у которой есть несколько вариантов решения(в глубину в ширину), есть несколько ядер, параллелим задачи на 3, каждая задача смотрит на флаг volatile boolean solved - если фолс - продолжает, если тру - заканчивает. А так вообще примеров миллион, в том числе классические алгоритмы из Art of multiprocessor programming ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2012, 15:07:21 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
mayton (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. Вероятно это наследие старой JVM, когда для записи int и long априори требовалось более одной команды процессора. Современные-то JVM наверняка знают о 32-х и 64-хбитных регистрах. Но "для обратной совместимости" оставили.. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 06:06:19 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
забыл никroibushпропущено... Все верно! гарантирует только видимость, но не атомарность! Я лично не могу хороший придумать пример, где можно юзать Volatile. кто нить может подсказать таковой? плиз :) Есть большая задача(вроде поиска в графе), у которой есть несколько вариантов решения(в глубину в ширину), есть несколько ядер, параллелим задачи на 3, каждая задача смотрит на флаг volatile boolean solved - если фолс - продолжает, если тру - заканчивает. А так вообще примеров миллион, в том числе классические алгоритмы из Art of multiprocessor programming О, спасибо, я искал хорошую книжку на эту тему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 07:10:16 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
mesiermayton (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. Вероятно это наследие старой JVM, когда для записи int и long априори требовалось более одной команды процессора. Современные-то JVM наверняка знают о 32-х и 64-хбитных регистрах. Но "для обратной совместимости" оставили.. )) Я-бы сказал точнее. Каждая имплементация JVM знает о своих регистрах. Но кодить надо исходя из спецификаций JVM а не целевой архитектуры. Иначе - фэйл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 12:22:06 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
mesiermayton (int/long) атомарно не обновляются. Используйте обёртки AtomicInteger и AtomicLong. Вероятно это наследие старой JVM, когда для записи int и long априори требовалось более одной команды процессора. Современные-то JVM наверняка знают о 32-х и 64-хбитных регистрах. Но "для обратной совместимости" оставили.. )) int всегда читался и записывался атомарно, long - да, за две операции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 13:56:08 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
maytonЯ делал краш-тест. Вобщем volatile можете использовать только для булевых переменных. Все остальные (int/long) атомарно не обновляются. Т.е. записывая в одно потоке FFFF а в другом 0000 вы получили FF00? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 17:53:58 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Я выбрал 5 рабочих потоков которые наращивали разделяемую переменную с некратным шагом. 2,3,5,7 e.t. и собрал юнит тест который сверял расчётоное теоретическое значение (я заваедомо его знал) и фактическое которе принимала разделяемая переменная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 17:56:47 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
maytonЯ выбрал 5 рабочих потоков которые наращивали разделяемую переменную с некратным шагом. 2,3,5,7 e.t. и собрал юнит тест который сверял расчётоное теоретическое значение (я заваедомо его знал) и фактическое которе принимала разделяемая переменная. это проблема видимости а не атомарности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:02:39 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
забыл никmaytonЯ выбрал 5 рабочих потоков которые наращивали разделяемую переменную с некратным шагом. 2,3,5,7 e.t. и собрал юнит тест который сверял расчётоное теоретическое значение (я заваедомо его знал) и фактическое которе принимала разделяемая переменная. это проблема видимости а не атомарности точнее нет, все таки атомарности, но не записи отдельного int, а инкремента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:04:11 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
забыл никзабыл никпропущено... это проблема видимости а не атомарности точнее нет, все таки атомарности, но не записи отдельного int, а инкремента Так что инкремент всё таки атомарен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:21:37 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
Коллеги а как же happens-before ? Что за чушь вы тут несете ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:45:42 |
|
||
|
Объясните толков что означает слово volatile
|
|||
|---|---|---|---|
|
#18+
buldozer01Коллеги а как же happens-before ? Что за чушь вы тут несете ? Тс-с-с. Мне самому интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2012, 18:53:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=33741218&tid=2130350]: |
0ms |
get settings: |
12ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
67ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 492ms |

| 0 / 0 |
