Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 17802|Atsakyti: 0

[Komunikatas] užraktas C #

[Kopijuoti nuorodą]
Paskelbta 2019-02-21 09:43:39 | | |
1. Kodėl užrakinti ir kas užrakinta?

Kai naudojame gijas, efektyviausias būdas, žinoma, yra asinchroninis, tai yra, kiekviena gija veikia tuo pačiu metu, nepasikliaujant viena kita ir nelaukiant. Tačiau kai skirtingoms gijoms reikia prieigos prie tam tikro šaltinio, reikalingas sinchronizavimo mechanizmas, tai yra, skaitydami ir rašydami tą patį šaltinį, turime užtikrinti, kad išteklius vienu metu veiktų tik viena gija, kad kiekviena operacija būtų efektyvi ir nedelsiant, tai yra, kad būtų užtikrintas jos veikimo atomiškumas. užraktas yra dažniausiai naudojamas sinchronizavimo metodas C#, formatu lock(objectA){codeB}.


lock(objectA){codeB} atrodo paprastas, tačiau iš tikrųjų jis turi tris reikšmes, kurios yra būtinos norint jį tinkamai naudoti:
1. Ar objectA užrakintas? Jei ne, užrakinsiu, kitaip palaukite, kol bus išleistas objektasA.
2. Po užrakinimo kitos gijos negali iškviesti codeB arba naudoti objectA vykdant codeB.
3. Įvykdžius codeB, atleiskite objectA ir codeB galima pasiekti kitomis gijomis.

2. Kas atsitiko su spyna (tai)?

Pažvelkime į pavyzdį:

T1 gijoje "LockMe" iškviečia lock(this), tai yra c1 pagrindinėje funkcijoje, o iškviečiant lock(c1) pagrindinėje gijoje, prieš pasiekdamas c1 turi palaukti, kol bus įvykdytas t1 užrakto blokas, tai yra, negalima atlikti visų su c1 susijusių operacijų, todėl matome, kad net c1. DoNotLockMe() nevykdomas.





Ankstesnis:C# masyvo dalyje ArraySegment
Kitą:Išsami "Spring Boot" praktika. Chen Shaojian ir "SpringBoot" atskleidžia + greitai sukuria mikropaslaugų sistemą
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com