पर विशेषताओं को जोड़ें मैं जावा में वर्तमान Thread
पर attributes
'कैसे सेट कर सकता हूं, मैं कुंजी-मान सेट करना चाहता हूं और मान को किसी अन्य स्थान पर प्राप्त करना चाहता हूं, लेकिन उसी थ्रेड में। इस http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/MDC.htmlवर्तमान जावा थ्रेड
उत्तर
मुझे नहीं लगता कि आप जावा में दिए गए किसी भी थ्रेड में विशेषताओं को जोड़ सकते हैं, लेकिन आप ThreadLocal
उदाहरण का उपयोग प्रति थ्रेड के किसी विशेष जानकारी को स्टोर करने के लिए कर सकते हैं।
ThreadAttributes.get("attribute"); //to get an attribute
ThreadAttributes.set("attribute", "toValue"); //to set an attribute
चेतावनी:: सिर्फ इस
import java.util.HashMap;
import java.util.Map;
public class ThreadAttributes {
private static ThreadLocal<Map<String, String>> threadAttrs = new ThreadLocal<Map<String, String>>() {
@Override
protected Map<String, String> initialValue() {
return new HashMap<String, String>();
}
};
public static String get(String key) {
return threadAttrs.get().get(key);
}
public static void set(String key, String value) {
threadAttrs.get().put(key, value);
}
}
इसका इस्तेमाल करने के लिए:
http://download.oracle.com/javase/6/docs/api/java/lang/ThreadLocal.html
यहाँ @ edalorzo के जवाब के लिए नमूना कोड है कि अगर आप आवेदन बहुत सारे सूत्र बनाता है और उन्हें पुन: उपयोग नहीं कर रहा है यह कोड संभावित रूप से HashMap
एस रिसाव करेगा।
दूसरी तरफ थ्रेडलोकल वेरिएबल्स में थ्रेड पूल के साथ समस्याएं होती हैं, क्योंकि जब पूल से एक ट्रेड का पुन: उपयोग किया जाता है, तो इसे उसी थ्रेड स्थानीय चर को असाइन किया जाएगा जैसा कि आखिरी बार उपयोग में था। इसलिए, यह जांचना महत्वपूर्ण है कि यह कोई मुद्दा नहीं है। –
यह बहुत सच है। मुझे लगता है कि यह वास्तव में आवश्यकता पर निर्भर करता है। यदि आपको ऐसे गुणों की आवश्यकता है जो कार्य-स्कोप्ड (उदाहरण के लिए 'रननेबल # रन()' -स्कोप्ड) हैं, तो Google Guice ढांचे के लिए स्रोत कोड को देखने लायक हो सकता है, जो आपको उदाहरणों का दायरा देने की अनुमति देता है। – rodion
- 1. वर्तमान थ्रेड विधि जावा
- 2. जेएमटर वर्तमान थ्रेड संख्या?
- 3. जावा थ्रेड
- 4. थ्रेड जावा
- 5. थ्रेड। जावा
- 6. जावा थ्रेड बनाम ओएस थ्रेड
- 7. जावा कैश्ड थ्रेड पूल और थ्रेड स्थानीय
- 8. वर्तमान संस्कृति क्यों थ्रेड की संपत्ति है?
- 9. जावा थ्रेड अपवाद
- 10. जावा में थ्रेड
- 11. जावा सरणी थ्रेड-सुरक्षा
- 12. जावा में थ्रेड पूल
- 13. जावा में थ्रेड
- 14. जावा थ्रेड उदाहरण?
- 15. जावा: थ्रेड-सुरक्षित RandomAccessFile
- 16. जावा थ्रेड "सिंक्रनाइज़"
- 17. जावा थ्रेड पुन: उपयोग
- 18. जावा शटडाउन हुक थ्रेड
- 19. जावा थ्रेड पूल
- 20. libGDX में जावा थ्रेड
- 21. जावा में वर्कर थ्रेड
- 22. जावा थ्रेड अवरुद्ध
- 23. जावा XPathFactory थ्रेड-सुरक्षा
- 24. जावा: वर्तमान कार्यशील निर्देशिका
- 25. जावा/सर्वलेट: वर्तमान sql.Date
- 26. जावा ArrayList वर्तमान आकार
- 27. जावा जबकि लूप और थ्रेड!
- 28. जावा थ्रेड प्रतीक्षा करें और
- 29. जावा स्विंग वर्कर थ्रेड ईडीटी
- 30. जावा थ्रेड - मेमोरी स्थिरता त्रुटियां
यह ठीक है कि यह log4j एमडीसी में कैसे किया जाता है, और ईजेबी लेनदेन संदर्भ और सुरक्षा संदर्भ अनुरोध के दौरान उसी तरह से किया जाता है - यह एक कारण है कि ईजेबी अपने धागे शुरू करने से रोकता है। –