AtomicInteger lazySet по сравнению с набором

Загрузите Проводник Процесса Sysinternal . Это - диспетчер задач, намного более мощный, чем собственный менеджер Windows.

Один из него - функции, то, что Вы видите все ресурсы, которые каждый процесс использует (как ключи реестра, каталоги жесткого диска, именованные каналы, и т.д.). Так, просматривая ресурсы, которые каждый процесс java.exe хранения мог бы помочь Вам определить, какой Вы хотите уничтожить. Я обычно узнаю путем поиска того, который это использует определенный каталог файла журнала.

109
задан David Harkness 3 September 2014 в 17:34
поделиться

2 ответа

Цитируется прямо из «JDK-6275329: Добавление методов lazySet в атомарные классы» :

Как, вероятно, последнее небольшое продолжение JSR166 для Mustang, мы добавили метод "lazySet" к атомным классам (AtomicInteger, AtomicReference и т. Д.). Это ниша метод, который иногда бывает полезен при тонкой настройке кода с помощью неблокирующие структуры данных. Семантика что запись гарантированно не будет переупорядочена ни с какими предыдущая запись, но может быть переупорядочена с последующими операциями (или, что то же самое, может быть не видно другим потокам) до тех пор, пока происходит какое-либо другое изменчивое действие записи или синхронизации).

Основной вариант использования - обнуление полей узлов в неблокирующие структуры данных исключительно во избежание длительное удержание мусора; это применяется, когда это безвредно если другие потоки какое-то время видят ненулевые значения, но вы бы хотели бы гарантировать, что структуры в конечном итоге будут GCable. В таком случаях вы можете повысить производительность, избегая стоимость нулевой летучей записи. Есть несколько другие варианты использования в этих строках для не основанных на ссылках атомики, поэтому метод поддерживается во всех Классы AtomicX.

Для людей, которые любят думать об этих операциях с точки зрения барьеры машинного уровня для обычных мультипроцессоров, lazySet обеспечивает предшествующий барьер магазин-магазин (который либо не работает или очень дешево на текущих платформах), но нет барьер загрузки магазина (который обычно является дорогой частью о непостоянной записи).

109
ответ дан 24 November 2019 в 03:24
поделиться

Re: попытка приглушить его -

Вы можете думать об этом как о способе обработки изменчивого поля, как если бы оно не было изменчивым для конкретный магазин (например: ref = null;) операция.

Это не совсем точно, но этого должно быть достаточно, чтобы вы могли принять решение между «Хорошо, мне действительно все равно» и «Хм, позвольте мне немного подумать об этом».

2
ответ дан 24 November 2019 в 03:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: