Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 27855|Atsakyti: 1

[Šaltinis] "Java ThreadLocal" principai ir pakartotinis kelių gijų naudojimas sukelia duomenų netvarką

[Kopijuoti nuorodą]
Paskelbta 2021-11-01 11:45:36 | | | |
Programuodami apibrėžiame kintamojo turinio perdavimo metodo parametrus, jei vykdymo metodo lygis yra gilus, tada kiekvienas metodas turi apibrėžti perduodamus parametrus, šiuo metu kai kuriuos kintamuosius galima perduoti per ThreadLocal, kol visi metodai vykdomi toje pačioje gijoje, galima nustatyti ir perskaityti ThreadLocal reikšmę.

ThreadLocal klasė naudojama vietiniams kintamiesiems gijos viduje pateikti. Kai šie kintamieji pasiekiami (get/set) kelių gijų aplinkoje, kiekvienos gijos kintamieji yra santykinai nepriklausomi nuo kitų gijų kintamųjų.

ThreadLocal pirmiausia gaus dabartinę giją (Thread t = Thread.currentThread()) vykdydamas nustatytą metodą, ir naudos dabartinę giją, kad gautumėte ThreadLocalMap, jei žemėlapis nėra tuščias, tai reiškia, kad dabartinė gija turi anksčiau susietą žemėlapį, tada atnaujinkite šio žemėlapio vertę, jei ne, naudokite save kaip raktą, kad įdėtumėte vertę į žemėlapį, kad suprastumėte kintamųjų ir gijų susiejimą.



Išbandykite kodą, nustatykite gijų telkinį, kad išlaikytų ne daugiau kaip 5 gijas, o kai iškviesime "ThreadLocal" metodą kelių gijų atveju, gausime "ThreadLocal" duomenis (Kitų gijų duomenų rinkinys), musThreadLocal rinkinio metodas neiškviečiamas dabartinėje gijoje, kad būtų nustatyti duomenys, kaip parodyta toliau pateiktame paveikslėlyje:



Klaidos priežastys:Kai gija pakartotinai naudojama, tikėtina, kad pirmoji reikšmė, gauta iš ThreadLocal, yra reikšmė, likusi iš kitų ankstesnių gijų

Nes po to, kai baigsime su ThreadLocal dabartinėje gijoje,Būtinai paskambinkite pašalinti, kad laiku išvalytumėte。 Kaip parodyta žemiau:



Kodas:

(Pabaiga)





Ankstesnis:"Docker" peržiūri konteinerio paleidimo iš naujo nustatymus ir masinio sustabdymo konteinerius
Kitą:Jenkins (5) Projekto grupės pristatymas
Paskelbta 2021-11-02 21:30:12 |
Ateikite mokytis dar kartą.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com