TGViewer
Data Science: Алгоритмы и Структуры данных Data Science: Алгоритмы и Структуры данных @structuredata · 7.64K subscribers
Post #4563 586
Невидимый враг многопоточности: False Sharing и кэш-линии процессора

Представьте типичную ситуацию: вы оптимизируете высоконагруженный бэкенд или сетевой сервис. И абсолютно неважно, на чем вы пишете — C++, Java, Go или C#. У вас есть несколько потоков, и вы решаете избавиться от медленных блокировок. Ведь мьютексы — это узкое горлышко, верно?

Вы применяете классический паттерн: вместо того чтобы потоки толкались локтями вокруг одной переменной, вы даете каждому потоку (или горутине) свой собственный, независимый счетчик. Нет общих данных — нет конфликтов. Вы запускаете нагрузочные тесты, ожидая увидеть красивое линейное ускорение, но профилировщик показывает странное. Потоки словно продолжают стоять в очереди, а код на многоядерной машине начинает работать едва ли не медленнее, чем на одном ядре.

https://habr.com/ru/articles/1032804/

Алгоритмы и Структуры данных
  • 🔥 1
More from @structuredata
  1. Oct 17, 2026​Задумывались ли вы, как получают таблицу судоку? Её генерируют специальными алгоритмами (…
  2. Oct 17, 2026​Ищем повторяющиеся элементы в массиве Предположим, вам нужно найти дубликат элемента в ма…
  3. Oct 16, 2026Курс по программированию классических алгоритмов на C++ для школьников В школах нередко ин…
  4. Oct 16, 2026Фантастические графы и какими они бывают С графами мы часто сталкиваемся в реальном мире.…
  5. Oct 15, 2026​Введение в криптографию и шифрование Когда-то материал из этой лекции читали в МГУ целых…
  6. Oct 15, 2026​Структура данных «очередь» (queue) — принципы работы С понятием очереди вы наверняка хоро…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →