मेरे पास एक वेब एप्लिकेशन है जहां उपयोगकर्ता ल्यूसीन इंडेक्स को क्वेरी सबमिट करते हैं। प्रश्न को ल्यूसीन QueryParser
द्वारा पार्स किया गया है। मैंने कठिन तरीका सीखा है कि QueryParser
थ्रेड-सुरक्षित नहीं है।एकाधिक धागे में ल्यूसीन क्वेरीपर्सर: प्रत्येक बार नया सिंक्रनाइज़ या निर्माण?
क्या यह एक QueryParser
उदाहरण का उपयोग करना बेहतर है, और parse()
विधि पर कॉल पर सिंक्रनाइज़ करना बेहतर है? या क्या प्रत्येक क्वेरी के लिए एक नया उदाहरण बनाना बेहतर है? (या मैं बेहतर QueryParser
रों का एक पूल द्वारा कार्य किया जाएगा?)
मुझे पता है कि इस तरह से सामान्य प्रश्नों में ब्यौरे पर निर्भर करते हैं और रूपरेखा की आवश्यकता होती है, लेकिन शायद किसी को वहाँ निश्चित कह सकते हैं "QueryParser
रों बेहद खर्चीली हैं/निर्माण करने के लिए महंगा "?
+1 हां, निश्चित रूप से पूल (या एकल साझा करें) 'QueryParser' ऑब्जेक्ट का कोई कारण नहीं है। आगे पढ़ने: [जावा सिद्धांत और अभ्यास: शहरी प्रदर्शन किंवदंतियों, पुनरीक्षित] (http://www.ibm.com/developerworks/java/library/j-jtp09275/index.html) – WhiteFang34
धन्यवाद! @ व्हाइटफैंग 34, यह लिंक सामान्य रूप से आवंटन की कम लागत के बारे में है, लेकिन यह निश्चित रूप से यह इंगित करने योग्य है कि ** ** ** कुछ प्रकार की वस्तुएं हैं जहां निर्माण सस्ता नहीं है क्योंकि आवंटन से बहुत सारे काम किए जाते हैं। ल्यूसीन दुनिया में अक्सर प्रदर्शन कारणों से एकल 'इंडेक्सशियर' साझा करने के लिए याद दिलाया जाता है। –