Публикации по теме 'java-memory-model'


Что такое сборщик мусора Java и как он работает
Пристальный взгляд на модель памяти JVM Модель памяти Java также описывает, как система сборки мусора Java управляет памятью (и очищает неиспользуемую память), чтобы программа Java могла работать эффективно и надежно. Есть несколько терминов, с которыми нужно ознакомиться, прежде чем мы сможем по-настоящему понять, что такое сборка мусора. Модель памяти Java состоит из нескольких различных типов памяти: Куча Это основная память, которую могут использовать Java-программы. Стек..

Вопросы по теме 'java-memory-model'

Поток отправки событий соответствует модели памяти Java
Это связано с более ранним вопрос Я спросил, где был ответ: Если к полю обращаются несколько потоков, оно должно быть изменчивым или окончательным, или доступ к нему должен осуществляться только с помощью синхронизированных блоков. В...
544 просмотров

Поведение синхронизированного
Я читал, что код внутри синхронизированного блока соответствует семантике «происходит до», так что все значения, записанные внутри синхронизированного блока, должны быть последовательно видны другим потокам. Кроме того, я читал, что кэши очищаются...
83 просмотров
schedule 20.03.2023

изменчивый с семантикой выпуска / получения
Начиная с Java 5, ключевое слово volatile имеет семантику выпуска / получения, чтобы сделать побочные эффекты видимыми для других потоков (включая присвоение энергонезависимым переменным!). Возьмем, к примеру, эти две переменные: int i;...
1152 просмотров

как освободить память после выполнения java-программы
Я запланировал запуск файла jar при запуске системы, который использует mysql. он используется для перемещения тысяч записей из одной БД в другую, во время каждого выполнения он занимает много памяти процессора, но после завершения (выполнение...
1039 просмотров

Модель памяти Java - что именно сбрасывается в память при преодолении барьера памяти?
Я думаю, что понимаю связь «произошло раньше» для отдельных переменных. Если я напишу изменчивое поле, все последующие чтения этого поля будут содержать это новое значение. Запись volatile преодолевает барьер памяти и сбрасывает новое значение в...
584 просмотров
schedule 22.04.2022

Пожалуйста, объясните безопасность инициализации, как указано в модели памяти Java.
Может ли кто-нибудь объяснить безопасность инициализации в соответствии с требованиями модели памяти Java? Как поля final помогают в достижении безопасности инициализации ? Какую роль конструктор играет в обеспечении безопасности...
2322 просмотров

Достаточно ли объявления двух полей изменчивыми?
Сейчас я пишу приложение Java ME . Насколько я знаю, он использует старую модель памяти Java, поскольку ее функции ограничены Java 1.3. Единственная гарантия ключевого слова volatile, предоставляемая этой моделью, заключается в том, что все...
217 просмотров

Почему эта Java-программа завершается, несмотря на то, что, по-видимому, она не должна (и не должна)?
Чувствительная операция в моей лаборатории сегодня пошла совершенно не так. Привод электронного микроскопа вышел за его пределы, и после цепочки событий я потерял оборудование на 12 миллионов долларов. Я сузил более 40 тысяч строк в неисправном...
49856 просмотров

Произойдет ли непостоянное чтение перед изменяющейся записью?
Я пытаюсь понять, почему этот пример - правильно синхронизированная программа: a - volatile Thread1: x=a Thread2: a=5 Поскольку есть конфликтующие доступы (есть запись и чтение a), поэтому в каждой последовательной согласованности выполнение...
1505 просмотров

Какова видимость в памяти переменных, доступ к которым осуществляется в статических синглтонах в Java?
Я часто видел этот тип кода в проектах, где приложению требуется глобальный держатель данных, поэтому они используют статический синглтон, к которому может получить доступ любой поток. public class GlobalData { // Data-related code. This...
364 просмотров
schedule 18.03.2024

Безопасен ли этот способ передачи объектов между потоками в JMM?
Я ищу безопасный способ передать объект из фонового потока в поток пользовательского интерфейса. Код ниже делает это безопасно? // on background thread final HugeObject object = constructHugeObjectFromDatabaseAndNetwork();...
98 просмотров

Синхронизация разделяемой памяти (int) с java-потоками
В нашем приложении (написанном на Java для Android) у нас есть производный класс Thread , который содержит поле int: public class MyThread extends Thread { public int myValue = 0; public void doWork() { while (true) {...
984 просмотров

Модель памяти Java на практике
Я пытался изучить модель памяти Java. , но до сих пор не могу понять, как люди используют его на практике. Я знаю, что многие просто полагаются на соответствующие барьеры памяти (как описано в поваренной книге ), но ведь сама модель такими...
395 просмотров
schedule 15.08.2022

Возможна ли энергонезависимая блокировка с двойной проверкой?
Вот мой одноэлементный класс. Статическое поле instance не является изменчивым, поэтому возникает проблема изменения порядка / видимости. Для ее решения поле экземпляра val делается окончательным. Поскольку экземпляр построен правильно, его...
205 просмотров

Пул строк создается в области PermGen или области объектов кучи.
ЗДЕСЬ , автор говорит, что 3) Пул строк создается в области PermGen кучи, сборка мусора может происходить в постоянном пространстве, но зависит от JVM для JVM. Кстати, из обновления JDK 1.7 пул строк перемещен в область кучи, где создаются...
10373 просмотров
schedule 07.04.2022

Как получить общий размер кучи JVM, используемую память с помощью Java
программно, как получить общий размер кучи, используемую память кучи?
1418 просмотров
schedule 17.07.2022

Объекты предварительно извлекаются из массива ссылок в Java?
Представьте, что у нас есть 1000 объектов одного типа, разбросанных по памяти (они были созданы в разное время, а между ними были созданы другие объекты). У нас есть массив, который содержит ссылки на каждый из 1000 объектов. Вопрос Если мы...
601 просмотров

Несинхронизированные чтения (в сочетании с синхронизированной записью) в конечном итоге согласованы
У меня есть вариант использования со многими потоками писателей и одним потоком чтения. Записываемые данные - это счетчик событий, который считывается потоком отображения. Счетчик только увеличивается, а дисплей предназначен для людей, поэтому...
209 просмотров
schedule 11.07.2023

Понимание происходит-до и синхронизация
Я пытаюсь понять Java происходит до порядка , и есть несколько вещей, которые кажутся очень запутанными. Насколько я могу судить, «случается раньше» — это просто приказ о наборе действий и не дает никаких гарантий о порядке выполнения в реальном...
2962 просмотров
schedule 25.01.2023

Эффекты памяти синхронизированного ключевого слова в Java
Возможно, на этот вопрос уже был дан ответ, но из-за сложности вопроса мне нужно подтверждение. Поэтому я перефразирую вопрос Вопрос 1 . Когда поток входит в синхронизированный блок, барьер памяти будет включать любые затронутые поля, а не только...
529 просмотров
schedule 15.07.2022