Race Condition

Türkçe karşılığı: Yarış durumuAlan: Eşzamanlılık

Program sonucunun eşzamanlı işlemlerin kontrolsüz göreli zamanlamasına bağlı hale gelmesi ve farklı interleaving'lerde farklı davranış üretmesi.

Zamanlamaya Bağımlı Doğruluk

Race condition, aynı sistem durumuna birden fazla yürütme bağlamının eriştiği ve doğruluğun hangi işlemin önce gerçekleştiğine bağlı olduğu durumda ortaya çıkar.

Sorun yalnız iki thread'in aynı anda çalışması değildir; geçerli olmayan bir interleaving'in mümkün olmasıdır.

Data Race ile Aynı Değil

Bazı dil/bellek modellerinde data race daha dar, biçimsel bir tanıma sahiptir. Race condition ise kilitli/atomik erişimler kullanılsa bile daha üst seviye check-then-act mantığında oluşabilir.

Test Zorluğu

Hata yalnız belirli zamanlama penceresinde ortaya çıktığı için normal testlerde uzun süre görünmeyebilir. Log eklemek veya debugger kullanmak zamanlamayı değiştirerek hatayı gizleyebilir.

Çözüm; paylaşılan durumu azaltmak, atomicity sınırını doğru kurmak ve geçerli durum geçişlerini açık tasarlamaktır.

İlişkili Kavramlar