Вопросы по теме 'java-memory-model'
Вставка инструкций Fence с помощью JVM/JIT
Модель памяти Java дает гарантию DRF (свобода гонки данных), что означает, что программа, свободная от гонки данных, при выполнении в модели расслабленной памяти Java будет давать то же поведение, что и при последовательном последовательном...
741 просмотров
schedule
04.03.2022
Является ли JAXB безопасным для одновременного доступа (как это делается)
Я предполагаю, что JAXB вызывает конструктор с нулевым аргументом, а затем начинает заполнять энергонезависимые поля и добавлять данные в списки.
В моем собственном коде: сразу после выполнения этого действия (десортировки) сгенерированные...
4745 просмотров
schedule
07.09.2023
Есть ли инструмент для определения того, правильно ли синхронизирована программа, как определено в JLS?
Спецификация языка Java 7 (JLS7-17.4.5) определяет «правильно синхронизированную» программу следующим образом: «Программа правильно синхронизирована тогда и только тогда, когда все последовательно согласованные выполнения свободны от гонок данных»....
197 просмотров
schedule
29.04.2023
Отношение «происходит до» в модели памяти Java
Что касается JLS ch17 Threads and Locks , в нем говорится: "если произойдет одно действие -перед другим, то первый виден и упорядочен перед вторым"; Я думаю:
(1) Что на самом деле означает фраза «заказано раньше»? Потому что даже если...
655 просмотров
schedule
26.08.2022
Видимость значения
Сейчас я читаю Java Concurrency in Practice и кое-что не могу понять.
public class NoVisibility {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
public void run() {
while (!ready)...
31 просмотров
schedule
04.11.2023
Может ли планировщик приостановить один поток и выполнить другой поток/работу?
Пусть у нас есть следующий код (мы будем запускать его на одноядерном процессоре):
Runnable runnable1 = new Runnable() {
@Override
public void run() {
System.out.println("runnable_1_1");
System.out.println("runnable_1_2");...
136 просмотров
schedule
30.04.2023
Прочитать устаревшее значение поля после построения объекта
Я читаю книгу Брайана Гетца о параллелизме в Java на практике. Пункты 3.5 и 3.5.1 содержат утверждения, которые я не могу понять.
Рассмотрим следующий код:
public class Holder {
private int value;
public Holder(int value) {
this.value =...
590 просмотров
schedule
30.11.2023
Ленивая инициализация/запоминание без volatile
Похоже, что модель памяти Java не определяет «обновление» и «очистку» локального кеша, вместо этого люди называют это так только для простоты, но на самом деле отношение «происходит до» подразумевает как-то обновление и очистку (было бы здорово, если...
604 просмотров
schedule
23.09.2023
java - изменчивая семантика в ConcurrentHashMap
В ConcurrentHashMap JDK 8 методы tabAt и setTabAt используются для обеспечения энергозависимого чтения / записи первого элемента бинов в Node<K,V>[] table . Однако авторы отмечают, что:
Обратите внимание, что вызовы setTabAt всегда...
164 просмотров
schedule
19.05.2022
Как получать периодические дампы кучи для моей Java-программы через равные промежутки времени в формате csv (без jprofiler)
Я хотел получать дампы кучи для своего универсального Java-приложения через равные промежутки времени в виде CSV-файлов. Допустим, у меня есть программа
public class Test {
public static void main(String[] args) throws Exception {
// Code...
51 просмотров
schedule
19.11.2023
Может ли поток сначала получить объект через безопасную публикацию, а затем опубликовать его небезопасно?
Этот вопрос возник у меня после прочтения этого ответа .
Пример кода:
class Obj1 {
int f1 = 0;
}
volatile Obj1 v1;
Obj1 v2;
Thread 1 | Thread 2 | Thread 3
-------------------------------------------------
var o = new Obj1(); |...
364 просмотров
schedule
31.10.2023
Многопоточное поведение со статическими членами
Как ведет себя многопоточность в случае статических членов? Как и в случае с классом Singleton, если я попытаюсь создать экземпляр в статическом блоке и в статическом методе, я верну экземпляр, и два потока попытаются выполнить getInstance()...
68 просмотров
schedule
20.08.2022