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

Udsigt: 30344|Svar: 2

[Kilde] C# gevindsikring med lås

[Kopier link]
Opslået på 13/06/2016 17.26.25 | | |

Hvis din kode er i en proces, der kører flere tråde samtidig, kan den køre koden samtidig. Hvis resultatet af hver kørsel er det samme som for en enkelt tråd, og værdierne af andre variable er de samme som forventet, er det trådsikkert.
Med andre ord er grænsefladen, som en klasse eller et program leverer, atomar for tråde, eller at skifte mellem flere tråde fører ikke til tvetydighed i udførelsesresultatet af grænsefladen, hvilket betyder, at vi ikke behøver at overveje synkronisering.
Trådsikkerhedsproblemer skyldes både globale og statiske variable.
Hvis hver tråd kun har læseoperationer for globale variable og statiske variable, men ingen skriveoperationer, er denne globale variabel generelt trådsikker; Hvis flere tråde udfører læse- og skriveoperationer på en variabel samtidig, kræves trådsynkronisering generelt, ellers kan det påvirke trådsikkerheden.

Formålet med låsen er at forhindre samtidige operationer ved multitrådet eksekvering, og objekter af referencetypen af lås tillader kun én tråd at operere ad gangen i sit låste område.

Lock kan kun låse én referencetypevariabel, det vil sige låse en adresse




Der er forskel på resultaterne af at køre med og uden låsning:

Efter låsning: værdien af i vil falde én efter én, der vil ikke være nogen hop, ingen gentagne output, indtil værdien 0;

Ingen lås: værdioutputtet af i vil springe, diskontinuert faldende, og kan også have en værdi af -1 output;

Årsag: Efter at have tilføjet en lås, kan kun én tråd eksekvere koden i det låste område ad gangen, og begge tråde udføres i rækkefølge, så der vil ikke være noget afbrudt output.




Tidligere:Bruger annullerede gemmedialogen (MS Visual Database Tools)
Næste:En fin DBHelper-klasse, der udfører lagrede procedurer
Opslået på 14/06/2016 10.53.36 |
 Udlejer| Opslået på 10/02/2022 09.18.58 |
.NET/C# Lock Principle Monitor giver en dybdegående forklaring
https://www.itsvse.com/thread-9633-1-1.html
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