/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/java/java-503-23-025/main.java
37 строк
1 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
public class HappensBeforeExamples { private int x = 0; private volatile boolean flag = false; public void example1() { // В пределах одного потока: порядок программы x = 1; // A happens-before B x = 2; // B } public void example2() { // Запись в volatile happens-before чтения этой переменной x = 10; // A flag = true; // B (volatile запись) happens-before C // В другом потоке: // if (flag) { // C (volatile чтение) happens-before D // System.out.println(x); // D — увидит 10 // } } public synchronized void example3() { // Выход из synchronized блока happens-before входа другого потока x = 20; } public void example4() throws InterruptedException { Thread t = new Thread(() -> { x = 30; // A }); t.start(); // start() happens-before начало run() — A виден в run() t.join(); // завершение run() happens-before возврат из join() // x == 30 гарантированно } }