थ्रेड-सुरक्षित कार्य के लिए 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);
}
}
```
मैं इस मेथड को कॉल करता हूँ