O cursă de date apare când doi sau mai mulți goroutines accesează aceeași memorie concurent, cel puțin un acces este o scriere, și nu există sincronizare între ei. Rezultatul este comportament nedefinit — date corupte, prăbușiri sau rezultate greșite care apar intermitent. Go oferă un detector de curs încorporat pentru a le găsi.
