Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 27855|Vastaus: 1

[Lähde] Java ThreadPaikalliset periaatteet ja monisäikeinen uudelleenkäyttö johtavat datan sekavuuteen

[Kopioi linkki]
Julkaistu 1.11.2021 11.45.36 | | | |
Ohjelmoinnissa määrittelemme metodin parametrit muuttujan sisällön välittämiseksi, jos suoritusmenetelmän taso on syvä, jokaisen metodin täytyy määritellä välitettävät parametrit. Tässä vaiheessa joitakin muuttujia voidaan välittää ThreadLocalin kautta, kunhan kaikki metodit suoritetaan samassa säikeessä, ThreadLocalin arvo voidaan asettaa ja lukea.

ThreadLocal-luokkaa käytetään paikallisten muuttujien tarjoamiseen säikeen sisällä. Kun näitä muuttujia käytetään (get/set) monisäikeisessä ympäristössä, kunkin säikeen muuttujat ovat suhteellisen riippumattomia muiden säikeiden muuttujista.

ThreadLocal saa ensin nykyisen säikeen (Thread t = Thread.currentThread()) suorittaessaan asetettua metodia, ja käyttää nykyistä säikettä saadakseen ThreadLocalMapin; jos kartta ei ole tyhjä, se tarkoittaa, että nykyisellä säikeellä on aiemmin sidottu kartta, ja päivittää tämän kartan arvon, jos ei, käyttää itseään avaimena arvon asettamiseen karttaan, jotta muuttujien ja säikeiden sitominen toteutuu.



Testaa koodia, aseta säiepooli ylläpitämään enintään 5 säikettä, ja kun kutsumme ThreadLocal-get-metodia monisäikeisyyden tapauksessa, saamme ThreadLocal-datan (Muiden säikeiden aineisto), usThreadLocal-joukko-menetelmää ei kutsuta nykyisessä säikeessä datan asettamiseksi, kuten alla olevassa kuvassa näkyy:



Virhe aiheuttaa:Kun säie on käytetty uudelleen, on todennäköistä, että ensimmäinen ThreadLocalista saatu arvo on jäljellä muista aiemmista säikeistä

Koska, kun olemme saaneet ThreadLocalin valmiiksi nykyisessä ketjussa,Muista soittaa poistopalvelulle saadaksesi ajoissa puhdistuksen。 Kuten alla on esitetty:



Koodi:

(Loppu)





Edellinen:Docker tarkastelee konttien uudelleenkäynnistysasetuksia ja bulk stop -kontteja
Seuraava:Jenkins (5) Projektiryhmän esitys
Julkaistu 2.11.2021 21.30.12 |
Tule oppimaan uudelleen.
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com