Turinys:
Apibrėžimas - Ką reiškia gijų sinchronizavimas?
Gijų sinchronizavimas yra tuo pačiu metu vykdomas dviejų ar daugiau gijų, turinčių svarbius išteklius, vykdymas. Gijos turėtų būti sinchronizuotos, kad būtų išvengta kritinių išteklių naudojimo konfliktų. Priešingu atveju gali kilti konfliktų, kai lygiagrečiai vykdomos gijos bando tuo pačiu metu modifikuoti bendrą kintamąjį.
„Techopedia“ paaiškina gijų sinchronizaciją
Norėdami paaiškinti gijų sinchronizaciją, atsižvelkite į šį pavyzdį: trys gijos - A, B ir C - vykdomos tuo pačiu metu ir joms reikia prieiti prie svarbiausio šaltinio Z. Kad išvengtumėte konfliktų prisijungiant prie Z, A, B ir C gijos turi būti sinchronizuotos. . Taigi, kai A pasiekia Z, o B taip pat bando pasiekti Z, B saugumo priemonėmis reikia vengti B prisijungimo prie Z, kol A baigs veikti ir išeis iš Z.
„Java“ programoje naudojamos dvi sinchronizacijos strategijos, kad būtų išvengta gijų trukdžių ir atminties nuoseklumo klaidų:
- Sinchronizuotas metodas: į savo deklaraciją įtraukia sinchronizuotą raktinį žodį. Kai gija kreipiasi į sinchronizuotą metodą, sinchronizuotas metodas automatiškai įgauna vidinę to metodo objekto užraktą ir jį atpalaiduoja, kai metodas grįžta, net jei tą grąžinimą lėmė nenustatyta išimtis.
- Sinchronizuotas teiginys: skelbia sinchronizuojamo kodo bloką. Skirtingai nuo sinchronizuotų metodų, sinchronizuotuose teiginiuose turėtų būti nurodyti objektai, užtikrinantys vidinį užraktą. Šie teiginiai yra naudingi siekiant pagerinti sinchronizavimą su smulkiagrūdžiu sinchronizavimu, nes jie leidžia išvengti nereikalingo blokavimo.
