Ugrás a tartalomhoz

condition variable

A Wikiszótárból, a nyitott szótárból


Főnév

condition variable (tsz. condition variables)

  1. Sok alkalmazás esetében a kölcsönös kizárás nem elegendő. Előfordulhat, hogy a műveletet végrehajtó szálaknak várniuk kell, amíg valamilyen P feltétel igaznak bizonyul. Egy elfoglalt várakozó hurok

while not ( P ) do skip

nem fog működni, mivel a kölcsönös kizárás megakadályozza, hogy bármely más szál belépjen a monitorba, hogy a feltétel igaz legyen. Léteznek más „megoldások” is, például egy olyan ciklus, amely feloldja a monitor zárolását, vár egy bizonyos ideig, zárolja a monitort, és ellenőrzi a P feltétel teljesülését. Elméletileg ez működik, és nem fog holtpontra jutni, de problémák merülnek fel. Nehéz eldönteni a megfelelő várakozási idő mértékét: túl kicsi, és a szál lefoglalja a CPU-t, túl nagy, és látszólag nem reagál. Szükség van egy olyan módra, amely jelzi a szálnak, ha a P feltétel igaz (vagy igaz lehet).