tgoop.com/iosdev/1548
Last Update:
Гонки данных в iOS: определение, причины возникновения и способы решения на практических примерах
В канале и закрытой базе данных я регулярно делюсь не только кейсами, которые могут возникать в разработке и их решениями.
Одна из самых популярных проблем — гонки данных, которые встречаются даже в популярных продуктах.
Они возникают, когда встречается несколько обращений к одной и той же области памяти, при условии, что по крайней мере один из этих доступов — запись.
Без правильной синхронизации это может привести к непредсказуемому поведению, сбоям приложения или невалидности данных.
В iOS IQ я добавил несколько типичных примеров, когда можно столкнуться с таким поведением и привёл варианты решения (не только для DispatchQueue, но и для Swift Concurrency с акторами).
А ещё можно увидеть полезную (и понятную) реализацию для работы с кэшем.
📖 Кстати, в канале можно почитать и про Thread Sanitizer, и про то, для чего ещё нужны акторы.