Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 27855|Atbildi: 1

[Avots] Java ThreadLocal principi un vairāku pavedienu atkārtota izmantošana rada datu jucekli

[Kopēt saiti]
Publicēts 01.11.2021 11:45:36 | | | |
Programmēšanā mēs definējam metodes parametrus, lai nodotu mainīgo saturu, ja izpildes metodes līmenis ir dziļš, tad katrai metodei ir jādefinē nododamie parametri, šobrīd dažus mainīgos var nodot caur ThreadLocal, ja vien visas metodes tiek izpildītas vienā un tajā pašā pavedienā, var iestatīt un nolasīt ThreadLocal vērtību.

ThreadLocal klase tiek izmantota, lai nodrošinātu lokālos mainīgos pavediena iekšienē. Kad šiem mainīgajiem tiek piekļūt (get/set) vairāku pavedienu vidē, mainīgie katrā pavedienā ir relatīvi neatkarīgi no mainīgajiem citos pavedienos.

ThreadLocal vispirms iegūs pašreizējo pavedienu (Thread t = Thread.currentThread()), izpildot iestatīto metodi, un izmantos pašreizējo pavedienu, lai iegūtu ThreadLocalMap, ja karte nav tukša, tas nozīmē, ka pašreizējam pavedienam ir iepriekš saistīta karte, pēc tam atjauniniet šīs kartes vērtību, ja nē, izmantojiet sevi kā atslēgu, lai ievietotu vērtību kartē, lai realizētu mainīgo un pavedienu saistīšanu.



Pārbaudiet kodu, iestatiet pavedienu baseinu, lai saglabātu ne vairāk kā 5 pavedienus, un, izsaucot ThreadLocal get metodi vairāku pavedienu gadījumā, mēs iegūsim ThreadLocal datus (Citu pavedienu datu kopa), mumsMetode ThreadLocal kopa netiek izsaukta pašreizējā pavedienā, lai iestatītu datus, kā parādīts attēlā:



Kļūdas cēloņi:Kad pavediens tiek izmantots atkārtoti, visticamāk, ka pirmā vērtība, kas iegūta no ThreadLocal, ir vērtība, kas palikusi no citiem iepriekšējiem pavedieniem

Tā kā pēc tam, kad esam pabeiguši ar ThreadLocal pašreizējā pavedienā,Noteikti zvaniet noņemt, lai savlaicīgi iztīrītu。 Kā parādīts zemāk:



Kods:

(Beigas)





Iepriekšējo:Docker aplūko konteineru restartēšanas iestatījumus un lielapjoma apturēšanas konteinerus
Nākamo:Jenkins (5) Projekta grupas prezentācija
Publicēts 02.11.2021 21:30:12 |
Nāciet mācīties vēlreiz.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com