2011-08-23 16 views
6

का उपयोग करना सुरक्षित है क्या यह सिंगलटन ExecutorService और CompletionService के कई उदाहरणों को एक ही थ्रेड पूल का उपयोग करने के लिए सुरक्षित है?क्या सिंगलटन निष्पादक सेवा

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool); 

तो, एक से अधिक ऊपर की तरह उदाहरणों बनाने धागे हो जाएगा, एक सिंगलटन ThreadPool साथ 'कलेक्टर'।

+0

मुझे कोई समस्या नहीं दिख रही है। क्या आपके मन में कुछ विशेष समस्या है जो समस्याएं पैदा कर सकती है? – toto2

+0

मेरी हिम्मत महसूस करती है कि कोई समस्या नहीं है। लेकिन मैं इसे इस्तेमाल करने से पहले पुष्टि करना चाहता था क्योंकि मुझे इस पर विशिष्ट दस्तावेज नहीं मिला और विशिष्ट दस्तावेज नहीं मिला। – ankitjaininfo

उत्तर

5

यह ठीक होगा। ExecutorCompletionService का प्रत्येक उदाहरण पूरा कार्य की अपनी कतार बनाए रखता है और प्रत्येक कार्य को संसाधित करने के लिए अंतर्निहित Executor का उपयोग करता है।

यदि कार्य पूरा करने की संख्या बड़ी है और थ्रेड पूल की ऊपरी सीमा है तो यह कार्य एक-दूसरे के प्रदर्शन के साथ हस्तक्षेप कर सकता है लेकिन इससे परिणाम की शुद्धता प्रभावित नहीं होगी।

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