🔹 shutdown() делает следующее:
—
—
—
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3👏1
False sharing возникает, когда
Несмотря на отсутствие логической связи, процессор вынужден постоянно инвалидировать кэш, создавая задержки.
Последствия:
Как избежать:
•
•
•
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
🔹 Процесс — это
🔹 Поток — это
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🔥1👏1
Если два потока одновременно добавят элементы, они создадут ситуацию, где список существует в двух состояниях одновременно (квантовая суперпозиция данных).
ArrayList не
1.
2.
3.
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2👏1😁1
Thread может находиться в одном из следующих состояний (Thread.State):
#concurrency #лучшее2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2👏1
Happens-Before — это г
Если действие A happens-before действия B, то
Примеры правил:
—
—
—
Это фундаментальная концепция для понимания многопоточности в Java.
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2👏1
CopyOnWriteArrayList создаёт
Collections.synchronizedList() оборачивает
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16👏2🔥1
→ submit()
→ invokeAll()
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1😁1
Race Condition — это ситуация, когда
Классический пример — инкремент:
// Два потока выполняют:
counter++; // read-modify-write
// Без синхронизации:
// Поток 1: читает 0
// Поток 2: читает 0
// Поток 1: пишет 1
// Поток 2: пишет 1
// Итого: 1 вместо 2
Решения:
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1👏1
Thread Pool (пул потоков) — это
Основная цель —
Это улучшает производительность и позволяет более эффективно управлять ресурсами, особенно при высокой нагрузке.
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5🔥1
Многопоточность — это способность программы
Параллелизм, с другой стороны, — это
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤1🔥1🤔1
🔹 shutdown() делает следующее:
—
—
—
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤1
happens-before — это гарантированный порядок между операциями, который определяет, что э
Примеры гарантий happens-before:
Без гарантии happens-before два потока могут видеть
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1
Virtual Threads (Project Loom) — это
Spring Boot 3.2+ поддерживает их из коробки — достаточно одной строчки:
propertiesspring.threads.virtual.enabled=true
Это переключает Tomcat, @Async, @Scheduled и TaskExecutor на виртуальные потоки.
Что даёт:
🔹 Подводные камни
▪️ Pinning —
▪️ ThreadLocal —
▪️ Пулы соединений —
▪️ CPU-bound задачи —
Вывод: включается легко, но нужно понимать, где узкое место. Не серебряная пуля — это инструмент для I/O-bound нагрузки.
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1👏1
Существует 4 основных уровня изоляции транзакций, каждый из которых определяет степень видимости данных, изменённых в одной транзакции, для других транзакций:
🔹 READ UNCOMMITTED
🔹 READ COMMITTED
🔹 REPEATABLE READ
🔹 SERIALIZABLE
Реализуется через блокировки (Lock-based): БД ставит range locks — блокирует не только существующие строки, но и диапазоны, куда могут вставиться новые. Это устраняет все виды аномалий, но может значительно снизить производительность.
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
execute() принимает
submit() принимает
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥2
volatile — это модификатор переменной, который гарантирует:
▪️
▪️
Использовать стоит, когда:
▪️
▪️
volatile не обеспечивает атомарности, поэтому для операций «чтение-модификация-запись» нужны синхронизация или атомарные типы (AtomicInteger, AtomicReference и т.п.).
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
Основные проблемы многопоточности:
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥2
False sharing возникает, когда
Несмотря на отсутствие логической связи, процессор вынужден постоянно инвалидировать кэш, создавая задержки.
Последствия:
Как избежать:
•
•
•
#concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1😁1