TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.65K subscribers
Post #65 689
❌ Deadlock и Livelock: чем опасны и как избежать.


⚠️ Deadlock — это тупик.
Когда два потока блокируют друг друга, бесконечно ожидая освобождения ресурсов, которые каждый из них удерживает.

♣️ Пример:
Поток 1: держит доступ к базе и ждёт сетевой ответ.
Поток 2: держит сеть и ждёт доступ к базе.

✅ Как предотвратить:
🔹 Устанавливайте строгий порядок блокировки ресурсов.
🔹 Используйте асинхронные вызовы вместо синхронных.


⚠️ Livelock — это бег на месте.
Ситуация, при которой два или более потока не могут выполнять полезной работы по причине борьбы за общий ресурс.

♣️ Пример:
Два потока постоянно меняют флаг "готовности", но реальной работы не происходит.

✅ Как исправить:
🔹 Добавляйте случайные задержки между повторными попытками.
🔹 Используйте семафоры для контроля доступа.
🔹 Используйте барьеры.


💡 Главное отличие:
Deadlock — полная остановка, Livelock — активность без прогресса.

🔢 В Swift особенно актуально при работе с:
🔸 GCD
🔸 OperationQueue
🔸 Новыми Actor-ами

➡️ Подписаться на канал
Мобильный трудоголик
  • 👍 24
  • ✍ 11
  • 🔥 4
More from @hardworkerit
  1. Oct 10, 2026🔢 Переиспользуемые превью в SwiftUI. SwiftUI-превью часто начинаются с простого кода. Но…
  2. Oct 9, 2026👨‍💻 Умение адаптироваться - важный навык айтишника, который часто недооценивают. В ИТ не…
  3. Oct 8, 2026🈸 Apple обяжет разработчиков поддерживать iPhone Duo. Apple опубликовала требования к при…
  4. Oct 6, 2026🔢 Swift 6.4: новая диагностика ретейн циклов. В Swift 6.4 появилась новая диагностика, ко…
  5. Oct 4, 2026🔢 SwiftUI: определение угла раскрытия iPhone Duo. В iOS 27.1 появился модификатор .onHing…
  6. Oct 2, 2026👣 Архитекторы, тестировщики и кодеры. Создаем мультиагентную команду Разработка с ИИ-аген…
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 →