Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 30344|Svare: 2

[Kilde] C# gjengesikring med lås

[Kopier lenke]
Publisert på 13.06.2016 17:26:25 | | |

Hvis koden din er i en prosess som har flere tråder som kjører samtidig, kan det hende den kjører koden samtidig. Hvis resultatet av hver kjøring er det samme som for en enkelt tråd, og verdiene til andre variabler er de samme som forventet, er det trådsikkert.
Med andre ord er grensesnittet som tilbys av en klasse eller et program atomisk for tråder, eller å bytte mellom flere tråder fører ikke til tvetydighet i utførelsesresultatet av grensesnittet, noe som betyr at vi ikke trenger å vurdere synkronisering.
Trådsikkerhetsproblemer skyldes både globale og statiske variabler.
Hvis hver tråd kun har leseoperasjoner for globale og statiske variabler, men ingen skriveoperasjoner, er denne globale variabelen generelt trådsikker; Hvis flere tråder utfører lese- og skriveoperasjoner på en variabel samtidig, kreves det vanligvis trådsynkronisering, ellers kan det påvirke trådsikkerheten.

Formålet med låsen er å forhindre samtidige operasjoner ved multitrådet utførelse, og objekter av referansetypen lås tillater kun én tråd å operere om gangen i sitt låste område.

Lock kan bare låse én referansetypevariabel, det vil si låse en adresse




Det er en forskjell mellom resultatene av å kjøre med og uten låsing:

Etter låsing: verdien av i vil synke én etter én, det vil ikke være noen hopp, ingen gjentatte utdata, før verdien 0;

Ingen lås: verdien av i vil hoppe, være diskontinuerlig avtagende, og kan også ha en -1 utdata;

Årsak: Etter å ha lagt til en lås, kan bare én tråd kjøre koden i det låste området om gangen, og begge trådene kjøres i rekkefølge, så det vil ikke være avbrutt utdata.




Foregående:Bruker kansellert ut av lagringsdialogen (MS Visual Database Tools)
Neste:En fin DBHelper-klasse som kjører lagrede prosedyrer
Publisert på 14.06.2016 10:53:36 |
 Vert| Publisert på 10.02.2022 09:18:58 |
.NET/C# Lock Principle Monitor gir en grundig forklaring
https://www.itsvse.com/thread-9633-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com