Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 17802|Atbildi: 0

[Paziņojums] slēdzene C #

[Kopēt saiti]
Publicēts 21.02.2019 09:43:39 | | |
1. Kāpēc bloķēt un kas ir bloķēts?

Kad mēs izmantojam pavedienus, visefektīvākais veids, protams, ir asinhrons, tas ir, katrs pavediens darbojas vienlaicīgi, nepaļaujoties viens uz otru un gaidot. Tomēr, ja dažādiem pavedieniem ir jāpiekļūst noteiktam resursam, ir nepieciešams sinhronizācijas mehānisms, tas ir, lasot un rakstot vienu un to pašu resursu, mums ir jāpadara resurss, ko vienlaikus darbina tikai viens pavediens, lai nodrošinātu, ka katra darbība ir efektīva un tūlītēja, tas ir, lai nodrošinātu tās darbības atomiskumu. bloķēšana ir visbiežāk izmantotā sinhronizācijas metode C# formātā lock(objectA){codeB}.


lock(objectA){codeB} šķiet vienkāršs, bet patiesībā tam ir trīs nozīmes, kas ir būtiski, lai to pareizi izmantotu:
1. Vai objectA ir bloķēts? Ja nē, es to bloķēšu, pretējā gadījumā pagaidiet, kamēr objektsA tiks atbrīvots.
2. Pēc bloķēšanas citi pavedieni nevar izsaukt kodu B vai izmantot objektu A koda B izpildes laikā.
3. Pēc codeB izpildes atbrīvojiet objektuA un codeB var piekļūt ar citiem pavedieniem.

2. Kas notika ar slēdzeni?

Apskatīsim piemēru:

T1 pavedienā LockMe izsauc lock(this), tas ir, c1 galvenajā funkcijā, un, izsaucot lock(c1) galvenajā pavedienā, pirms piekļuves c1 ir jāgaida, līdz tiks izpildīts bloķēšanas bloks t1, tas ir, visas ar c1 saistītās darbības nevar pabeigt, tāpēc mēs redzam, ka pat c1. DoNotLockMe() netiek izpildīts.





Iepriekšējo:C# masīva daļā ArraySegment
Nākamo:Padziļināta pavasara zābaka prakse. Chen Shaojian un SpringBoot atklāj + ātri izveido mikroservisa sistēmu
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com