Innholdsfortegnelse:
Definisjon - Hva betyr låseklarasjon?
En låseklarasjon, i C #, er en setning som inneholder "lås" -nøkkelordet og brukes i multitrådede applikasjoner for å sikre at den nåværende tråden utfører en blokkblokk til fullføring uten avbrudd av andre tråder. Låseerklæringen oppnår en gjensidig utelukkelseslås for et gitt objekt, slik at en tråd utfører kodeblokken av gangen og går ut av kodeblokken etter at du har sluppet låsen.
Låsemeldingen er en eksklusiv låsekonstruksjon som brukes for å sikre synkronisert tilgang til delte data i multitrådede applikasjoner. Det hjelper til med å beskytte integriteten til en mutbar ressurs som deles av flere tråder uten å skape interferens mellom disse trådene. Låsemeldingen kan brukes av et singleton-objekt for å forhindre samtidig tilgang til de vanlige dataene fra flere klienter.
Låsemeldingen er den primære synkroniseringsprimitiv som er tilgjengelig i .NET Framework Class Library. Den genererer automatisk konsistent og unntakssikker kode som kan håndtere synkroniseringsbehov i flertrådede programmer. Det gir også en enkel metode for å kontrollere synkronisering ved å generere effektiv kode, som forhindrer feil som kan være forårsaket av manuelt skrevet kode.
Techopedia forklarer Lock Statement
Låsemeldingen skal ha et argument av referansetype, ikke av verditype. Generelt anbefales det å låse på et privat forekomstmedlem eller et privat statisk medlem for å beskytte dataene som er delt mellom alle forekomster av objektet. Siden låsing av offentlig type eller forekomster som er utenfor kontrollen av kode, kan føre til dødelige situasjoner der flere tråder venter på frigjøring av et enkelt objekt som brukes til en låseanvisning, må de unngås.
Et eksempel på bruken av låseklarasjonen kan være en multitrådet applikasjon der et kontoobjekt med en metode for å trekke tilbake en saldo bruker låseklarasjonen for å forhindre at flere tråder utfører samme metode samtidig, noe som kan skyve saldoen til et negativt tall .
Hoveddelen av en låseanvisning må være liten for å redusere tiden som trengs for andre tråder som venter på låsen, redusere sjansene for dødlås og minimere muligheten for at et unntak vil inntreffe.
Begrensningene ved bruk av låseangivelser inkluderer at de bare kan brukes med data som er relevante for gjeldende applikasjon. Låseuttalelser kan heller ikke støtte en timeout.
