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

Udsigt: 27855|Svar: 1

[Kilde] Java ThreadLokale principper og multitrådet genbrug fører til datastøj

[Kopier link]
Opslået på 01/11/2021 11.45.36 | | | |
I programmering definerer vi metodeparametre til at sende variabelindhold; hvis udførelsesmetodens niveau er dybt, skal hver metode definere parametrene, der skal videresendes, på dette tidspunkt kan nogle variabler sendes gennem ThreadLocal, så længe alle metoder udføres på samme tråd, kan værdien af ThreadLocal sættes og læses.

ThreadLocal-klassen bruges til at levere lokale variabler inde i tråden. Når disse variabler tilgås (henter/sættes) i et multitrådet miljø, er variablerne i hver tråd relativt uafhængige af variablerne i de andre tråde.

ThreadLocal henter først den aktuelle tråd (Thread t = Thread.currentThread()), når set-metoden udføres, og bruger den aktuelle tråd til at hente en ThreadLocalMap; hvis kortet ikke er tomt, betyder det, at den aktuelle tråd har et tidligere bundet kort, og derefter opdateres værdien af dette kort, hvis ikke, bruger det sig selv som nøgle til at sætte værdien i kortet, så man realiserer bindingen mellem variabler og tråde.



Test koden, sæt trådpoolen til at opretholde maksimalt 5 tråde, og når vi kalder ThreadLocal get-metoden i tilfælde af multi-threading, får vi ThreadLocal-dataene (Datasæt fra andre tråde), osThreadLocal-sætmetoden kaldes ikke på den aktuelle tråd for at sætte dataene, som vist i figuren nedenfor:



Fejlårsager:Når en tråd genbruges, er det sandsynligt, at den første værdi, der opnås fra ThreadLocal, er en værdi, der er tilbage fra andre tidligere tråde

For efter vi er færdige med ThreadLocal i den nuværende tråd,Sørg for at ringe til fjernelse for rettidig rensning。 Som vist nedenfor:



Kodeks:

(Slut)





Tidligere:Docker ser på indstillinger for genstart af containere og containere med bulk stop
Næste:Jenkins (5) Projektgruppepræsentation
Opslået på 02/11/2021 21.30.12 |
Kom for at lære igen.
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