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

Utsikt: 27855|Svare: 1

[Kilde] Java ThreadLocal-prinsipper og flertrådet gjenbruk fører til datastøy

[Kopier lenke]
Publisert på 01.11.2021 11:45:36 | | | |
I programmering definerer vi metodeparametere for å sende variabelinnhold; hvis utførelsesmetodenivået er dypt, må hver metode definere parameterne som skal sendes, på dette tidspunktet kan noen variabler sendes gjennom ThreadLocal, så lenge alle metodene kjøres på samme tråd, kan verdien av ThreadLocal settes og leses.

ThreadLocal-klassen brukes til å gi lokale variabler inne i tråden. Når disse variablene aksesseres (get/sett) i et multitrådet miljø, er variablene i hver tråd relativt uavhengige av variablene i andre tråder.

ThreadLocal vil først hente den nåværende tråden (Thread t = Thread.currentThread()) når den kjører sett-metoden, og bruke den nåværende tråden for å hente en ThreadLocalMap; hvis kartet ikke er tomt, betyr det at den nåværende tråden har et tidligere bundet kart, deretter oppdatere verdien til dette kartet, hvis ikke, bruke seg selv som nøkkel for å legge verdien inn i kartet, slik at man realiserer bindingen mellom variabler og tråder.



Test koden, sett trådpoolen til å opprettholde maksimalt 5 tråder, og når vi kaller ThreadLocal get-metoden i tilfelle multitråding, får vi ThreadLocal-dataene (Datasett av andre tråder), ossThreadLocal set-metoden kalles ikke på den nåværende tråden for å sette dataene, som vist i figuren nedenfor:



Feilårsaker:Når en tråd gjenbrukes, er det sannsynlig at den første verdien som oppnås fra ThreadLocal er en verdi som er igjen fra andre tidligere tråder

Fordi, etter at vi er ferdige med ThreadLocal i den nåværende tråden,Husk å ringe fjerning for rettidig rensing。 Som vist nedenfor:



Kode:

(Slutt)





Foregående:Docker ser på innstillinger for omstart av containere og bulk stop-containere
Neste:Jenkins (5) Prosjektgruppepresentasjon
Publisert på 02.11.2021 21:30:12 |
Kom for å lære igjen.
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