Kaip išvengti lenktynių sąlygų gijose?
Kaip išvengti lenktynių sąlygų gijose?

Video: Kaip išvengti lenktynių sąlygų gijose?

Video: Kaip išvengti lenktynių sąlygų gijose?
Video: Ar kas nors iš jūsų girdėjo apie vidurnakčio žaidimą? Siaubo istorijos. Mistikas. Siaubas 2024, Lapkritis
Anonim

Varžybų sąlygos galima išvengti tinkamai siūlas sinchronizavimas kritinėse dalyse. Siūlas sinchronizuoti galima naudojant sinchronizuotą bloką Java kodas. Siūlas sinchronizavimą taip pat galima pasiekti naudojant kitas sinchronizavimo konstrukcijas, tokias kaip užraktai arba atominiai kintamieji, pvz. java.

Panašiai klausiama, ko mums reikia, kad išvengtume lenktynių sąlygų?

Į išvengti mums reikalingų lenktynių sąlygų Abipusė atskirtis. Abipusis išskyrimas yra tam tikras būdas užtikrinti, kad jei vienas procesas naudoja bendrinamą kintamąjį arba failą, kiti procesai valios būti pašalintas iš daro tie patys dalykai.

Vėliau kyla klausimas, kiek procesų leidžiama jų kritinėje dalyje, jei norima užkirsti kelią lenktynių sąlygoms? Vengti lenktynių sąlygos , abipusė atskirtis turi būti vykdoma per kritines dalis . Draudžia daugiau nei vieną procesas tuo pačiu metu nepasiekti bendrosios atminties. Jeigu ne du procesus įveskite jų kritinės dalys tuo pačiu metu, ne lenktynių sąlygos.

Taip pat žinoti, kokia yra rasės būklė gijose?

A lenktynių būklė atsiranda, kai du ar daugiau siūlai gali pasiekti bendrinamus duomenis ir tuo pačiu metu bando juos pakeisti. Nes siūlas planavimo algoritmas gali keistis siūlai bet kuriuo metu jūs nežinote, kokia tvarka siūlai bandys pasiekti bendrinamus duomenis.

Pateikite pavyzdį, kokia yra lenktynių būklė?

Paprastas pavyzdys iš a lenktynių būklė yra šviesos jungiklis. Kai kuriuose namuose yra keli šviesos jungikliai, prijungti prie bendro lubų šviestuvo. Kai naudojamos šių tipų grandinės, jungiklio padėtis tampa nesvarbi. Jei lemputė dega, pajudinus bet kurį jungiklį iš dabartinės padėties, šviesa išsijungia.

Rekomenduojamas: