Yarış durumu

Yarış durumu () – çoxaxınlı sistem və ya tətbiqi proqramın düzgün layihələndirilməməsi nəticəsində yaranan xətadır. Belə ki, sistemin, yaxud tətbiqi proqramın işi kodun hissələrinin hansı ardıcıllıqla yerinə yetirilməsindən asılı olur. Məsələn, Java dilindəki aşağıdakı kod nümunəsinə baxaq:
frame

int x;

// Axın 1:
while (!stop)
{
  x++;
  …
}

// Axın 2:
while (!stop)
{
  if (x%2 == 0)
    System.out.println("x=" + x);
  …
}

Tutaq ki, x = 0. Fərz edək ki, proqramın icrası bu ardıcıllıqla baş verir:

1.	Axın 2-də if operatoru x-in cüt olub-olmamasını yoxlayır.
2.	Axın 1-də x++ operatoru x-i bir vahid artırır.
3.	Axın 2-də çıxış operatoru çıxışa "x=1" verir, baxmayaraq ki, cütlük yoxlamasından keçdiyindən çıxış tək ədəd olmamalı idi. 
Belə vəziyyətdən çıxmağın ən sadə yolu x dəyişənini başqa bir lokal dəyişənə köçürməkdir. 
// Axın 2:
while (!stop)
{
  int cached_x = x;
  if (cached_x%2 == 0)
    System.out.println("x=" + cached_x);
  …
}

Ədəbiyyat
 İsmayıl Calallı (Sadıqov), “İnformatika terminlərinin izahlı lüğəti”, 2017, “Bakı” nəşriyyatı, 996 s.

Xarici keçidlər 
 Karam, G.M.; Buhr, R.J.A. (August 1990). "Starvation and Critical Race Analyzers for Ada". IEEE Transactions on Software Engineering. 16 (8): 829–843. doi:10.1109/32.57622

Kateqoriya:Proqramlaşdırma