के माध्यम से जावा थ्रेड पुन: उपयोग मैं निम्नलिखित पर उलझन में हूं:
जावा प्रोग्राम में धागे का उपयोग करने के लिए, सबसे आसान तरीका थ्रेड क्लास का विस्तार करना और रननेबल इंटरफ़ेस को लागू करना (या केवल रननेबल लागू करना) है।
धागे के निष्पादन को शुरू करने के लिए। हमें थ्रेड की विधि प्रारंभ() को कॉल करना होगा, जो बदले में थ्रेड के विधि को चलाएगा()। और इसलिए धागा शुरू होता है।
विधि प्रारंभ() (जब तक कि मैं गलत नहीं हूं) को प्रत्येक थ्रेड के लिए बिल्कुल ठीक और केवल कहा जाना चाहिए। नतीजतन, थ्रेड इंस्टेंस का पुन: उपयोग नहीं किया जा सकता है जब तक कि किसी भी तरह से रन विधि स्वयं अन्तर्निहित लूप में नहीं चलती है जो थ्रेड के पुन: उपयोग के कस्टम कार्यान्वयन की सुविधा प्रदान करती है।
अब जावाडोक link text एक्जिक्यूटर
कॉल निष्पादित करने के लिए पहले से निर्माण धागे का पुन: उपयोग यदि उपलब्ध हो
मुझे समझ नहीं आता कि यह कैसे लागू किया गया है जाएगा कहते हैं। मैं निष्पादक विधि के निष्पादन विधि में अपने कस्टम थ्रेड उदा।
ExecutorService myCachedPool = Executors.newCachedThreadPool();
myCachedPool.execute(new Runnable(){public void run(){
//do something time consuming
}});
निष्पादक ढांचे के लिए मैं इस कस्टम थ्रेड का पुन: उपयोग कैसे कर सकता हूं?
क्या निष्पादक को विधि शुरू करने की अनुमति है() 1 से अधिक बार, जबकि हम अपने कार्यक्रमों में नहीं कर सकते हैं? क्या मैं कुछ गलत समझ रहा हूं?
धन्यवाद।
@Jon: माफ करना, मैं तुम्हें खो दिया है। तो ढांचे के आंतरिक धागे का पुन: उपयोग किया जाता है और निष्पादन योग्य नहीं है जिसे मैं निष्पादित करने के लिए तर्क के रूप में पास करता हूं? मेरे धागे को ढांचे में प्रतिनिधि प्रत्येक बार फिर से चालू किया जाएगा, लेकिन ढांचे द्वारा बनाए गए आंतरिक धागे के उसी उदाहरण से? – Cratylus
@ उपयोगकर्ता384706: हां। आपका रननेबल * एक धागा नहीं है - यह केवल एक कार्य निष्पादित किया जाना है। आपको दोनों के बीच अंतर करने की जरूरत है; वे बहुत अलग हैं। –
@ जोन: बहुत बहुत धन्यवाद। केवल एक चीज मुझे यकीन नहीं है, निष्पादकों का उपयोग करने का क्या फायदा है। NewCachedThreadPool(); क्योंकि यदि मेरी कक्षा जो चलने योग्य (एक कार्य के लिए) लागू करती है, उसे तत्काल महंगा किया जाता है, इसे पुन: उपयोग नहीं किया जाएगा और ढांचे का एक ही धागा कार्य के नए उदाहरणों का उपयोग करेगा। तो मैं इस एपीआई से क्या हासिल करूंगा? जब तक अवधारणा यह नहीं है कि प्रत्येक वर्ग जो चलने योग्य लागू करता है वह न्यूनतम है। – Cratylus