❓ Что такое false sharing в многопоточности и как его избежать?
False sharing возникает, когда разные потоки обновляют разные переменные, находящиеся в одной кэш-линии CPU.
Несмотря на отсутствие логической связи, процессор вынужден постоянно инвалидировать кэш, создавая задержки.
Последствия: высокая латентность, падение пропускной способности, резкое ухудшение производительности в hot-paths.
Как избежать:
• Разнести горячие поля по разным кэш-линиям → использовать @Contended (JDK 8+, требует -XX:-RestrictContended).
• Заполнять структуру “паддингом” вручную.
• Перепроектировать алгоритм, чтобы снизить частоту записи.
🐸 Библиотека собеса по Java
#concurrency
Post #1305
1.48K
- 👍 6
- 🔥 1
- 😁 1