See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 17802|Vastuse: 0

[Kommunikatsioon] lukk C #

[Kopeeri link]
Postitatud 21.02.2019 09:43:39 | | |
1. Miks lukustada ja mis on lukus?

Kui me kasutame lõime, on kõige tõhusam viis muidugi asünkroonne, st iga lõim töötab samaaegselt, ilma üksteisest sõltumata ja ootamata. Kui aga erinevad lõimed vajavad juurdepääsu teatud ressursile, on vaja sünkroniseerimismehhanismi, st sama ressursi lugemisel ja kirjutamisel peame tegema ressursi samaaegselt ainult ühe lõime poolt, et tagada iga operatsiooni tõhusus ja kohene, st tagada selle aatomiline toimimine. lukk on C# kõige sagedamini kasutatav sünkroniseerimismeetod formaadis lock(objectA){codeB}.


lock(objectA){codeB} tundub lihtne, kuid sellel on tegelikult kolm tähendust, mis on selle sobivaks kasutamiseks hädavajalik:
1. Kas objektA on lukus? Kui mitte, lukustan selle, muidu ootan, kuni objektA vabastatakse.
2. Pärast lukustamist ei saa teised lõimed codeB kutsuda ega kasutada objectA-d codeB täitmise ajal.
3. Pärast codeB käivitamist pääsevad välja objektile A ja codeB-le ligi teised lõimed.

2. Mis juhtus selle lukuga?

Vaatame näidet:

t1 lõimes kutsub LockMe lock(this) ehk c1 põhifunktsioonis ning kui kutsutakse lock(c1) põhilõime, peab ta ootama, kuni lukuplokk t1-s täitub, enne kui pääseb c1-le, st kõiki c1-ga seotud toiminguid ei saa lõpule viia, nii et näeme, et isegi c1. DoNotLockMe() ei ole täidetud.





Eelmine:C# ArraySegmentis, mis on osa massiivist
Järgmine:Põhjalik Spring Booti harjutamine. Chen Shaojian ja SpringBoot tutvustavad + ehitavad kiiresti mikroteenuse süsteemi
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com