मेरा प्रश्न है कि थ्रेड फ़ंक्शन में केवल स्थानीय चर के बजाय टीएलएस तंत्र का उपयोग क्यों करें? क्या आप कृपया कुछ अच्छा उदाहरण प्रदान कर सकते हैं, या स्थानीय वार्स पर टीएलएस का क्या फायदा है? धन्यवाद, मैट्यूज़स्थानीय चर के बजाय थ्रेड लोकल स्टोरेज (TlsAlloc, TlsGetValue, ets) का उपयोग क्यों करें
उत्तर
टीएलएस उपयोगकर्ता सत्र संदर्भ जानकारी जैसी चीजों के लिए उपयोगी है जो थ्रेड विशिष्ट है, लेकिन विभिन्न असंबद्ध तरीकों में इसका उपयोग किया जा सकता है। ऐसी परिस्थितियों में, टीएलएस कॉल स्टैक को ऊपर और नीचे जानकारी पास करने से अधिक सुविधाजनक है।
थ्रेड-स्थानीय भंडारण का उपयोग प्रति-थ्रेड आधार पर वैश्विक या स्थैतिक चर को अनुकरण करने के लिए किया जा सकता है। "सामान्य" स्थानीय चर नहीं कर सकते हैं।
और यह मुझे वैश्विक चर के लिए क्या देता है जो थ्रेड विशिष्ट है? –
यह एफई दे सकता है। मिशमाशरू ने – str14821
यदि आप स्थानीय चर का उपयोग कर सकते हैं तो ऐसा करें और आप हमेशा स्थानीय लोगों का उपयोग कर सकते हैं। केवल अंतिम उपाय के रूप में आप थ्रेड स्थानीय भंडारण का उपयोग करना चाहिए जो वैश्विक चर के रूप में लगभग सभी नुकसान से पीड़ित है। यद्यपि आप थ्रेड स्थानीय भंडारण का उपयोग करने का कोई कारण ढूंढ रहे हैं, वास्तव में सर्वोत्तम अभ्यास यह है कि इससे बचने के तरीकों की खोज करें! https://software.intel.com/en-us/articles/use-thread-local-storage-to-reduce-synchronization
यहाँ थ्रेड-स्थानीय संग्रहण का उपयोग कर तुल्यकालन कम करने के लिए पर इंटेल से अच्छा संबंध है। जब आप एलआईबीसी को कार्यान्वित कर रहे हैं या एलआईबीसी वेरिएंट में से किसी एक को नए प्लेटफॉर्म पर पोर्ट कर रहे हैं तो आपको प्रत्येक थ्रेड के लिए अद्वितीय होने के लिए किसी भी तरह 'इरनो' वैरिएबल (जो सिंगल थ्रेडेड प्लैटफॉम पर केवल बाहरी int errno) की आवश्यकता है। एलआईबीसी फ़ंक्शंस बस इसे वर्तमान थ्रेड के टीएलएस में संग्रहीत करता है और त्रुटि के लिए कॉल केवल इसे टीएलएस से पढ़ता है। टीएलएस किसी पुस्तकालय धागे को सुरक्षित बनाने का तरीका है। आप किसी भी प्रकार को 'स्थिर' या 'ग्लोबल' डेटा पर टीएलएस में स्टोर करते हैं, इसलिए एक ही थ्रेड से उसी फ़ंक्शन को कॉल किया जा रहा है, यह आपके थ्रेड में 'स्थिर' या 'ग्लोबल' चर को दूषित नहीं करेगा। जो आपको विभिन्न धागे से फिर से प्रवेश करने में काम करता है।
मैंने इस पोस्ट को छोड़ दिया लेकिन बाद में इस लेख को पढ़ा। बुरा कदम, अच्छा लेख! – Seralize
मैं TLS का उपयोग करने से एक बहुत अच्छा उदाहरण पता:
अच्छा बिंदु भाई! उसे भी नहीं पता था। – str14821
- 1. थ्रेड-लोकल स्टोरेज और आईओएस
- 2. थ्रेड स्थानीय स्टोरेज मेमोरी उपयोग
- 3. लोकल स्टोरेज डेटा दृढ़ता
- 4. कर्नेल मोड में थ्रेड-स्थानीय स्टोरेज?
- 5. सत्र का दायरा स्टोरेज और लोकल स्टोरेज
- 6. टीपीएल का उपयोग करते समय थ्रेड लोकल स्टोरेज (टीएलएस) का प्रबंधन कैसे करें?
- 7. लोकल स्टोरेज इवेंट लिस्टनर को
- 8. क्या विंडोज के थ्रेड-स्थानीय स्टोरेज मूल्यों को प्रारंभ करते हैं?
- 9. ऐप कैश = एप्लिकेशन कैश = वेब स्टोरेज का लोकल स्टोरेज है?
- 10. फोनगैप आईओएस 5.1 और लोकल स्टोरेज
- 11. एचटीएमएल 5 लोकल स्टोरेज पावर ऑफ
- 12. वेब विकास: लोकल स्टोरेज बनाम कैश HTTP
- 13. थ्रेड सुरक्षा और स्थानीय चर
- 14. स्थानीय स्टोरेज
- 15. स्थानीय स्टोरेज
- 16. आईओएस फोनगैप ऐप स्थानीय स्टोरेज
- 17. Azure ट्यूटोरियल - स्थानीय ब्लॉब स्टोरेज का उपयोग कैसे करें
- 18. कक्षा के नाम के बजाय var का उपयोग क्यों करें?
- 19. नींद() के बजाय चयन() का उपयोग क्यों करें?
- 20. थ्रेड स्थानीय निकालने विधि
- 21. स्थिर अंतिम चर के बजाय गुण फ़ाइल का उपयोग करें
- 22. Greasemonkey में स्थानीय स्टोरेज
- 23. सी ++ में थ्रेड स्थानीय चर को कैसे प्रारंभ करें?
- 24. PHP और स्थानीय स्टोरेज;
- 25. रेलवे 3.2.8 पर रूबी में लोकल स्टोरेज पर डेटा कैसे सहेजूं?
- 26. एचटीएमएल 5 स्थानीय स्टोरेज
- 27. अन्य तरीकों के बजाय कर्ल का उपयोग क्यों करें?
- 28. रजिस्टर का उपयोग क्यों करें डिफ़ॉल्ट: setValue के बजाय: forKey :?
- 29. स्ट्रिंग के बजाय char [] का उपयोग क्यों करें?
- 30. एस का उपयोग क्यों करें: एमएक्स के बजाय लाइन: एचआरयूएल?
का उल्लेख किया जब मेरे पास थ्रेड फ़ंक्शन से कई फ़ंक्शन हैं और वे सभी एक ही डेटा का उपयोग करते हैं तो मैं टीएलएस का उपयोग केवल स्टैक के माध्यम से डेटा को पास नहीं करने के लिए करता हूं, हां? –
हां। उदाहरण के लिए, यदि लॉग इन उपयोगकर्ता को जानने के लिए कोड में विभिन्न बिंदुओं पर इसकी आवश्यकता होती है, तो लॉग इन उपयोगकर्ता को हर विधि में पास करने के बजाय उस जानकारी को सिंगलटन में टीएलएस में स्टोर करना आसान होता है। – btreat
आपकी समझ सही है लेकिन ढेर पर पार्सिंग बेहतर है –