3603 читали · 2 года назад
Java 183. Что такое Happens-before? Каковы особенности использования ключевого слова volatile?
Happens-before - это концепция в Java Memory Model, которая определяет отношения порядка между операциями чтения и записи в многопоточном приложении. Happens-before гарантирует, что если операция A happens-before операции B, то любое изменение значения, выполненное в операции A, будет видно операции B. Например, если один поток записывает значение в переменную, а затем другой поток прочитывает это значение, выражение "запись happens-before чтение" гарантирует, что второй поток увидит актуальное значение, записанное первым потоком. Ключевое слово volatile используется для обозначения переменных, которые могут быть доступны нескольким потокам одновременно...
4 месяца назад
Happens-Before в Java: как JVM гарантирует видимость изменений между потоками
Стек: Java 11, многопоточность, Java Memory Model (JMM) Цель: понять, что такое happens-before, как он обеспечивает видимость и упорядочение, и почему volatile и блокировки “работают”. В многопоточной Java-программе изменения одного потока могут быть невидимы другому из-за: Без гарантий видимости и упорядочения вы можете получить: 💡 Java Memory Model (JMM) решает эту проблему через правила happens-before — формальный контракт между потоками. Happens-before — это отношение “происходит до” между двумя действиями в программе...