जिस परियोजना पर मैं काम कर रहा हूं उसे डेटाबेस की ओर से प्रश्नों की पूरी गुच्छा की आवश्यकता है। एक्सेल फ़ाइल सेजावा में संग्रह को संशोधित करने वाले एकाधिक धागे?
पढ़ा, मानकों के एक जोड़े के लिए जाँच करें और डेटाबेस में हिट के लिए एक प्रश्न करते हैं: सिद्धांत रूप में मैं उपयोग कर रहा हूँ प्रश्नों के दो प्रकार के होते हैं। इन हिट को तब कस्टम कक्षाओं की एक श्रृंखला के रूप में पंजीकृत किया जाता है। कोई हिट (और सबसे अधिक संभावना होगी) एक से अधिक बार हो सकती है, इसलिए कोड का यह हिस्सा एक कस्टम सूची कार्यान्वयन में घटना को जांचता है और अद्यतन करता है जो ArrayList को बढ़ाता है। प्रत्येक हिट के लिए
, एक विस्तृत क्वेरी करें और आउटपुट पार्स करें, ताकि (I) में बनाए गए वर्गों को विस्तृत जानकारी मिल सके।
मुझे लगा कि मैं समय-समय पर अनुकूलित करने के लिए एकाधिक धागे का उपयोग करूंगा। हालांकि मैं वास्तव में उन समस्याओं को हल करने के लिए एक अच्छा तरीका नहीं आ सकता जो संग्रह के साथ होता है इन वस्तुओं को संग्रहीत किया जाता है। थोड़ा विस्तार करने के लिए; निष्पादन वस्तुओं के दौरान दोनों (i) और (II) द्वारा संशोधित किया जाना चाहिए।
मैंने जानबूझकर किसी भी कोड को सी/पी नहीं किया, क्योंकि यह किसी भी अर्थ के लिए कोड का बड़ा हिस्सा होगा .. मुझे उम्मीद है कि यह ऊपर दिए गए विवरण के साथ कुछ समझ में आता है।
धन्यवाद,
CopyOnWriteArrayList एक बहुत धीमी (और याददाश्त भूख) डेटा संरचना है - यह ऐरेलिस्ट को भी विस्तारित नहीं करता है ताकि वह ConcurrentLinkedQueue जैसे अधिक प्रभावशाली वर्ग का उपयोग कर सके। – Gandalf
इसके अलावा, जब तक आप किसी निर्माता/उपभोक्ता मॉडल से चिपके रहते हैं (यानी एक धागा कतार से किसी ऑब्जेक्ट को हटा देता है, इसे संपादित करता है, फिर उसे वापस (या एक अलग कतार में) रखता है) तो ऑब्जेक्ट्स को स्वयं को थ्रेड होने की आवश्यकता नहीं होती है -सुरक्षित। – Gandalf
@ गैंडफ, CopyOnWriteArrayList केवल लिखने पर धीमा है। मेरे ऊपर उपरोक्त पद में वर्णित क्या है, निर्माता-उपभोक्ता मॉडल से बहुत अलग है, इसलिए कतार एक विकल्प नहीं है। –