Проблемы многопоточки: Race Condition vs Data Race



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



Race condition и data race — две разные проблемы многопоточности, которые часто путают.



Эти проблемы очень похожи, но есть различия:



Race Condition — это недостаток, возникающий, когда время или порядок событий влияют на правильность программы.



Data Race — это состояние когда разные потоки обращаются к одной ячейке памяти без какой-либо синхронизации и как минимум один из потоков осуществляет запись.