थ्रेड-सुरक्षित कार्य के लिए Java में ThreadLocal का उपयोग कब और कैसे करें?
सभी को नमस्ते! मैं लगभग एक साल के अनुभव वाला Java डेवलपर हूं, और अभी मल्टीथ्रेडिंग समझ रहा हूं। मुझे एक समस्या का सामना करना पड़ा: मेरे पास Spring Boot पर एक वेब सर्वर है जो अलग-अलग थ्रेड्स में अनुरोधों को प्रोसेस करता है। प्रत्येक अनुरोध के लिए, मैं तिथियों को फॉर्मेट करने के लिए एक `SimpleDateFormat` ऑब्जेक्ट बनाता हूं। मुझे पता है कि `SimpleDateFormat` थ्रेड-सुरक्षित नहीं है, इसलिए मैं प्रत्येक मेथड के अंदर एक नया इंस्टेंस बनाता हूं।
लेकिन यह अक्षम लगता है — हर बार एक ऑब्जेक्ट बनाना और फिर उसे भूल जाना। मैंने `ThreadLocal` के बारे में सुना है, लेकिन मुझे समझ नहीं आता कि इसका उपयोग कब करना चाहिए। उदाहरण के लिए, मेरे पास ऐसा कोड है:
```java
public class DateService {
public String formatDate(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date);
}
}
```
मैं इस मेथड को कॉल करता हूं