TGViewer
iOS Dev iOS Dev @iosdev · 7.91K subscribers
Post #1548 4.39K
Гонки данных в iOS: определение, причины возникновения и способы решения на практических примерах

В канале и закрытой базе данных я регулярно делюсь не только кейсами, которые могут возникать в разработке и их решениями.

Одна из самых популярных проблем — гонки данных, которые встречаются даже в популярных продуктах.

Они возникают, когда встречается несколько обращений к одной и той же области памяти, при условии, что по крайней мере один из этих доступов — запись.

Без правильной синхронизации это может привести к непредсказуемому поведению, сбоям приложения или невалидности данных.

В iOS IQ я добавил несколько типичных примеров, когда можно столкнуться с таким поведением и привёл варианты решения (не только для DispatchQueue, но и для Swift Concurrency с акторами).

А ещё можно увидеть полезную (и понятную) реализацию для работы с кэшем.

✅ Новый раздел в разборе полётов уже можно найти 💰 в бусти и ⭐️ прямо здесь.

📖 Кстати, в канале можно почитать и про Thread Sanitizer, и про то, для чего ещё нужны акторы.

😃 iOS Dev
  • 👍 7
  • 🔥 5
  • ☃ 2
  • ✍ 1
  • 🎉 1
  • 💯 1
  • 🤝 1
  • 🤗 1
More from @iosdev
  1. Oct 5, 2026iPhone Duo UIKit Q&A: большая подборка ответов от инженеров Apple 📖 В своём блоге Антон с…
  2. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
  3. Sep 29, 2026⚡️Сегодня ночью десятки тысяч приложений массово начали крашиться из-за либы для аналитики…
  4. Sep 28, 2026От pbxproj к xcproj: разбор конфигураций проекта 📖 В этой статье можно посмотреть на новы…
  5. Sep 25, 2026Симулятор iPhone Duo: тестирование и оптимизация приложения Как только был анонсирован iPh…
  6. Sep 24, 2026Настоящая причина, почему на презентации не показали, как выглядит звонок с iPhone Duo. 😃…
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 →