यदि मैं एक तुलनात्मक का एक उदाहरण बना देता हूं, तो क्या संग्रह कोss.sort() का उपयोग करके संग्रह को सॉर्ट करने के लिए उस उदाहरण को एकाधिक थ्रेडों में उपयोग किया जा सकता है? या, क्या मुझे थ्रेड सुरक्षा सुनिश्चित करने के लिए Collections.sort() पर प्रत्येक कॉल के लिए तुलनाकर्ता का एक नया उदाहरण बनाने की आवश्यकता है?जावा में, संग्रहकर्ताओं() थ्रेड में सुरक्षित एक तुलनात्मक है?
उत्तर
यह पूरी तरह से निर्भर करता है कि आप Comparator
को कैसे कार्यान्वित करते हैं। यदि, उदाहरण के लिए, इसमें इंस्टेंस वैरिएबल हैं जो तुलना किए गए हैं या जिनके सामग्रियों को तुलनात्मक रूप से बदल दिया गया है, यह थ्रेडसेफ नहीं होगा।
अधिकांश Comparator
कार्यान्वयन ऐसी कोई चीज़ नहीं करते हैं, लेकिन एक परिदृश्य जो उचित रूप से हो सकता है, SimpleDateFormat
का उपयोग करके स्ट्रिंग्स की तुलना करने के लिए दिनांकों का प्रतिनिधित्व करता है। दुर्भाग्यवश, SimpleDateFormat
स्वयं धागा सुरक्षित नहीं है।
तुलनात्मक एक इंटरफ़ेस है, इसमें कोई निहित समवर्ती गुण नहीं हैं। यदि आपका कार्यान्वयन थ्रेडसेफ है या नहीं, तो यह इस बात पर निर्भर करता है कि आप इसे कैसे लिखते हैं। यदि यह सब कुछ करता है तो तुलना विधि (कोई इंस्टेंस या क्लास लेवल स्टेट) के दायरे तक ही सीमित नहीं है और इसका उपयोग करने वाले सभी संसाधन थ्रेडसेफ हैं, तो यह स्वयं थ्रेडसेफ होगा।
मुझे आश्चर्य हुआ कि अगर मुझे एक गैर थ्रेड सुरक्षित तुलनात्मक मिला, क्योंकि वे आमतौर पर (हमेशा?) पुनर्वित्तक होते हैं।
समेकन समस्या तब होगी जब संग्रह को सॉर्ट किया जा रहा था, जबकि सॉर्ट हुआ था।
- 1. जावा में थ्रेड-सुरक्षित कैसे enum है?
- 2. जावा थ्रेड-सुरक्षित में अस्थिर int है?
- 3. जावा रेगेक्स थ्रेड सुरक्षित है?
- 4. जावा: थ्रेड-सुरक्षित RandomAccessFile
- 5. जावा में प्राइमेटिव डेटाटाइप थ्रेड-सुरक्षित हैं
- 6. पाइथन थ्रेड में + = सुरक्षित है?
- 7. क्या जावा 5+ में DocumentBuilderFactory थ्रेड-सुरक्षित है?
- 8. javax.sql.DataSource थ्रेड सुरक्षित है?
- 9. जावा समरूपता: अंतिम फ़ील्ड (कन्स्ट्रक्टर में प्रारंभ) थ्रेड-सुरक्षित है?
- 10. जावा: अपवाद वर्ग थ्रेड-सुरक्षित है?
- 11. जावा का टाइमज़ोन थ्रेड-सुरक्षित है?
- 12. जावा ट्रांसपोर्ट.send() क्या यह थ्रेड-सुरक्षित है?
- 13. डेटा संरचना थ्रेड-सुरक्षित (जावा)
- 14. सी: एक फ़ाइल में थ्रेड सुरक्षित लॉगिंग
- 15. जावा ऑब्जेक्ट क्रमबद्धता - थ्रेड सुरक्षित?
- 16. एक चर (थ्रेड) की थ्रेड-सुरक्षित सेटिंग?
- 17. सिग्नलआर में Hub.Context थ्रेड सुरक्षित है?
- 18. सी # थ्रेड-सुरक्षित में CreateDirectory() है?
- 19. पायथन थ्रेड में शेल्फ सुरक्षित है?
- 20. डेल्फी में, आउटपुटडिबगस्ट्रिंग थ्रेड सुरक्षित है?
- 21. MapMap.Map ऑटोमैपर थ्रेड-सुरक्षित में है?
- 22. सी # थ्रेड-सुरक्षित में उपज वापसी है?
- 23. एपोल थ्रेड-सुरक्षित है?
- 24. स्ट्रीम है। थ्रेड-सुरक्षित?
- 25. जावा क्लास में थ्रेड सुरक्षा
- 26. SQLite.Net थ्रेड-सुरक्षित है?
- 27. जॉइनर थ्रेड सुरक्षित है?
- 28. Magento थ्रेड-सुरक्षित है?
- 29. जावा में थ्रेड सेफ सिंगलेट्स
- 30. बनाना एक वर्ग थ्रेड-सुरक्षित
यह उचित है कि वह तुलनात्मक विधि के अंदर कुछ संसाधनों का उपयोग कर रहा हो जो थ्रेड सुरक्षित नहीं है। एक अनसंक्रनाइज़ संग्रह, कैलेंडर, इत्यादि संपादित करें: माइकल बी ने क्या कहा^ – Affe
आप सही हैं, मैंने उन मामलों पर विचार नहीं किया था। – Artefacto