2010-10-11 11 views
6

मुझे पता है वेक्टर वर्ग तत्वों को जोड़ने और हटाने के लिए थ्रेड-सुरक्षित है [reference]।java.util.Vector serialization धागा-सुरक्षित है?

यदि मैं ऑब्जेक्टऑटपुटस्ट्रीम का उपयोग कर वेक्टर को क्रमबद्ध करता हूं, तो क्या मैं एक निरंतर (और गैर भ्रष्ट) स्थिति की गारंटी देता हूं जब मैं इसे deserialize करता हूं भले ही अन्य धागे seralization के दौरान वस्तुओं को जोड़ रहे हैं और हटा रहे हैं?

+1

ध्यान दें कि हालांकि अलग-अलग जोड़ें/हटाने आपरेशन सिंक्रनाइज़ किए जाते हैं, आप एक वेक्टर के माध्यम से दूर करने (अपने स्वयं के लॉकिंग जोड़े बिना) पुनरावृति नहीं कर सकते हैं, जबकि अन्य सूत्र जोड़ रहे हैं/देख http://stackoverflow.com/questions/1386275/why -जावा-वेक्टर-क्लास-माना जाता है-अप्रचलित-या-बहिष्कृत –

+0

यह ध्यान में रखना अच्छा है। –

उत्तर

7

writeObject() विधि सिंक्रनाइज़ है। लेकिन जावाडोक में कुछ भी नहीं है जो गारंटी देता है कि जब तक यह 'वेक्टर सिंक्रनाइज़' कथन द्वारा निहित नहीं किया जाता है।

ध्यान दें कि readObject() विधि की जरूरत नहीं है, सिंक्रनाइज़ किया है के रूप में वस्तु readObject जब तक किसी को सुलभ नहीं है() रिटर्न।

+0

जब तक इसे वर्तमान में थ्रेड-सुरक्षित तरीके से कार्यान्वित किया जाता है, तब तक मैं अपने उद्देश्यों के लिए स्वीकार कर सकता हूं कि जावाडोक में बयान कुछ अस्पष्ट है। –

संबंधित मुद्दे