Веб-версияОткрыть в Telegram

Пост🤔 Что такое as-if-serial semantics?

26 сентября 2026
J
Java | Вопросы собесов
🤔 Что такое as-if-serial semantics? As-If-Serial Semantics – это принцип оптимизации компилятором, при котором код может перестраиваться, но результат его выполнения остаётся таким же, как если бы инструкции выполнялись строго по порядку. Обычный код int a = 10; int b = 20; int c = a + b; System.out.println(c); Что может сделать компилятор? int c = 30; System.out.println(c); 🚩Что можно менять? (Безопасные оптимизации) Менять порядок инструкций, если это не влияет на результат. Удалять лишние переменные и вычисления. Заменять выражения константами (10 + 20 → 30). int x = 5; int y = 10; x = x + 1; // x = 6 System.out.println(y); Компилятор может поменять местами y и x int y = 10; int x = 6; System.out.println(y); 🚩Что нельзя менять? (Гарантированный порядок исполнения) int x = 10; int y = x + 5; x = 20; System.out.println(y); Если поменять порядок x = 20; int y = x + 5; // ❌ Неверно! y теперь 25, а должно быть 15 🚩Как `As-If-Serial` влияет на многопоточность? В многопоточной среде компилятор может менять порядок команд внутри одного потока, но он не знает о другом потоке! Опасный пример без volatile boolean ready = false; int data = 0; void writer() { data = 42; ready = true; } void reader() { if (ready) { System.out.println(data); // Может напечатать 0 из-за перестановки! } } Решение – volatile для ready volatile boolean ready = false; Ставь 👍 и забирай 📚 Базу знаний
6 · 1.3K ·

Рядом в ленте

JJava | Вопросы собесов🤔 Что такое шардирование? Шардирование – это метод горизонтального разделения базы данных на несколько частей (шардов) для повышения производительности и масштаJJava | Вопросы собесов🤔 Что делает Phaser? Phaser — это синхронизатор потоков, более гибкий, чем CountDownLatch и CyclicBarrier. Позволяет: - разделять задачи на фазы; - синхронизиро
это сообщение
JJava | Вопросы собесов🤔 В каких случаях бы применял Java-конфигурацию? Java-конфигурация уместна: - при написании тестов; - когда проект хочет избежать XML; - для динамической регистJJava | Вопросы собесов🤔 Является ли коллекция HashMap потоком безопасной? Коллекция HashMap не является потокобезопасной. Это означает, что при одновременном доступе к нему из нескол
JJava | Вопросы собесовJava | Вопросы собесов@easy_java_ru · канал · Технологии
11 337подписчиков1 098средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем