Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 17802|Svar: 0

[Kommunikation] Sluse C #

[Kopier link]
Opslået på 21/02/2019 09.43.39 | | |
1. Hvorfor låse, og hvad er låst?

Når vi bruger tråde, er den mest effektive metode selvfølgelig asynkron, det vil sige, at hver tråd kører på samme tid, uden at være afhængig af hinanden og vente. Men når forskellige tråde har brug for adgang til en bestemt ressource, kræves en synkroniseringsmekanisme, det vil sige, når man læser og skriver den samme ressource, skal ressourcen kun opereres af én tråd ad gangen for at sikre, at hver operation er effektiv og umiddelbar, det vil sige at sikre atomiciteten af dens operation. lock er den mest anvendte synkroniseringsmetode i C#, i formatet lock(objectA){codeB}.


lock(objectA){codeB} virker simpel, men har faktisk tre betydninger, hvilket er essentielt for at bruge det korrekt:
1. Er objektA låst? Hvis ikke, låser jeg den, ellers venter jeg til objektA er frigivet.
2. Efter låsning kan andre tråde ikke kalde codeB eller bruge objektA under eksekveringen af codeB.
3. Efter at kodeB er eksekveret, frigiv objektA, og kodeB kan tilgås af andre tråde.

2. Hvad skete der med låsen(denne)?

Lad os se på et eksempel:

I t1-tråden kalder LockMe lock(this), altså c1 i hovedfunktionen, og når lock(c1) kaldes i hovedtråden, skal den vente på, at låseblokken i t1 er udført, før den kan tilgå c1, det vil sige, at alle c1-relaterede operationer ikke kan gennemføres, så vi ser, at selv c1. DoNotLockMe() udføres ikke.





Tidligere:C# i ArraySegment-delen af arrayet
Næste:Dybdegående praksis med Spring Boot. Chen Shaojian og SpringBoot afslører + byg hurtigt et mikroservicesystem
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com