के बारे में उलझन में मैंने आज सुबह थ्रेडलोकल के बारे में सीखा। मैंने पढ़ा है कि यह हमेशा के लिए अंतिम और स्थिर होना चाहिए की तरह:थ्रेडलोकल
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
(सत्र एक हाइबरनेट सत्र है)
मेरे भ्रम की स्थिति यह है: क्योंकि यह स्थिर है, यह JVM में किसी भी धागा करने के लिए उपलब्ध है। फिर भी यह प्रत्येक थ्रेड के लिए स्थानीय जानकारी रखेगा जो इसे एक्सेस करता है? मैं इसके चारों ओर अपने सिर को लपेटने की कोशिश कर रहा हूं इसलिए अगर यह अस्पष्ट है तो मैं क्षमा चाहता हूं। एप्लिकेशन में प्रत्येक थ्रेड के पास एक ही थ्रेडलोकल ऑब्जेक्ट तक पहुंच है, लेकिन थ्रेडलोकल ऑब्जेक्ट ऑब्जेक्ट को प्रत्येक थ्रेड में स्थानीय स्टोर करेगा?
साझा वातावरण में तैनात वेब अनुप्रयोगों में इसका उपयोग करने से सावधान रहें। धागा स्थानीय सभी संदर्भों में रिसाव करेगा और थ्रेड स्थानीय में संदर्भों को पूर्ववत करने के बाद कचरा इकट्ठा नहीं किया जाएगा। मैन्युअल रूप से प्रत्येक अनुरोध के बाद आपको डेटा को हटाने की आवश्यकता है। – jontro
यह प्रतीत होता है विरोधाभासी है। प्रत्येक धागे में 'थ्रेडलोकल' अद्वितीय होना चाहिए, लेकिन प्रत्येक धागे के बीच स्थैतिक वस्तुएं साझा की जाती हैं। बस यही सवाल पूछने वाला था। – aliteralmind