Bir programın "iş parçacığı açısından güvenli" olduğunu kanıtlamak zordur. Bununla birlikte, "veri ırkı" terimini somut ve resmi olarak tanımlamak mümkündür. Ve bir programın belirli bir çalışmasının yürütme izinin, izin boyutuyla orantılı olarak bir veri yarışına sahip olup olmadığını belirlemek mümkündür. Bu tür analizler en azından 1988'e kadar uzanır: Barton P. Miller, Jong-Deok Choi, "Paralel Programların Etkin Hata Ayıklama Mekanizması", Conf. Prog. Lang. DSGN. ve Impl. (PLDI-1988): 135-144 .
Bir yürütme izi verildiğinde , öncelikle izdeki olaylar arasında kısmi sıradan önce gerçekleşen bir olay tanımlarız . Aynı iş parçacığında meydana gelen iki olay ve sonra veya . (Aynı evre üzerindeki olaylar, programlama dilinin sıralı anlambilimi tarafından verilen toplam bir emri oluşturur.) Senkronizasyon olayları (örneğin, muteks edinme ve bırakma olabilir), kısmi sıradan önce ek bir evreler arası olay verir. ( iş parçacığı bir muteksi serbest bırakır ve sonra iş parçacığı bu muteksi elde ederse, sürümün edinmeden önce gerçekleştiğini söyleriz.)birba < bb < aST
Sonra iki Verilen veri erişimleri (olan değişkenlere okur veya yazar değil eşitleme değişkenleri) ve farklı parçacığı tarafından ve ya aynı bellek konumuna olduklarını, ancak veya bir veriye olduğunu söylemek yazma işlemidir veya değilse ve arasında yarış .birbbirbbirba < bb < a
C ++ 11 standart iyi bir örnektir. (İlgili bölüm, çevrimiçi kullanılabilen taslak özelliklerde 1.10'dur.) C ++ 11, senkronizasyon nesneleri (muteksler ve bir türle bildirilen değişkenler atomic<>
) ve diğer tüm veriler arasında ayrım yapar . C ++ 11 spesifikasyonu, programlayıcının çok iş parçacıklı bir programın izindeki veri erişimleri hakkında, veri erişimlerinin tümü veri yarışından bağımsızsa sıralı olarak tutarlı olduğunu söyleyebilir.
Helgrind aracı (Valgrind'in bir parçası), çeşitli ticari araçlar gibi (örneğin, Intel Inspector XE) olduğu gibi, bu tür bir olaydan önce veri tabanlı algılama gerçekleştirir. Modern araçlardaki algoritmalar, her iş parçacığı ve senkronizasyonla ilişkili vektör saatlerini tutmaya dayanır. nesne. I düşünmek veri yarış tespiti için vektör saatler kullanarak bu teknik öncülük Michiel Ronsse; Koen De Bosschere: "RecPlay: tam entegre bir pratik kayıt / tekrar oynatma sistemi", ACM Trans. Comput. Sist. 17 (2): 133-152,1999 .