मुझे अक्सर इस स्निपेट पर आ गया है:
{SwingUtilities.invokeLater (नया रननाबल ) {सार्वजनिक शून्य रन () {नया परीक्षक (); // वर्ग का नाम}}); } मुझे पता है हम इसे क्यों प्रयोग कर रहे हैं, लेकिन समझ में नहीं आ रहा कि वह कैसा चल रहा है। मेरा मतलब है मैं इस स्निपेट को नहीं समझता हूं।
(हम चलने वाले ऑब्जेक्ट को आरंभ कर रहे हैं विधि ,,, क्यों ??)
कृपया इसे समझाओ
उस बिट के साथ कोड का आप एक इनर क्लास बना रहे हैं जो रननेबल को लागू करता है, उस उदाहरण को एक थ्रेड में बाद में प्रोसेसिंग के लिए एडब्ल्यूटी प्रसंस्करण कार्य डिस्पैचर में एन्क्यूटेड किया जाएगा। दस्तावेज़ को उद्धृत करते हुए, invokeLater ... के कारण doRun.run () को एडब्ल्यूटी इवेंट प्रेषण थ्रेड पर अतुल्यकालिक निष्पादित किया जा सकता है। ऐसा तब होगा जब सभी लंबित एडब्ल्यूटी घटनाओं पर कार्रवाई की गई है।
इसलिए कुछ बिंदु पर, एडब्ल्यूटी डिस्पैचर एक थ्रेड में चलने योग्य उदाहरण को चलाने का निर्णय करेगा। यह विधि चलाने के निष्पादन को भड़काने और इसलिए बयान नया परीक्षक (); का निष्पादन, जो केवल वर्ग परीक्षक का एक उदाहरण बनाते हैं । आपके विशिष्ट प्रश्न के लिए ...
हम चलने वाले विधि के तहत ऑब्जेक्ट को प्रारंभ कर रहे हैं, क्यों ??
यह वास्तव में सिर्फ चलाने विधि में एक वर्ग बनाने का अधिकार नहीं है, जब तक कन्स्ट्रक्टर बहुत सी चीज़ें नहीं कर रहा है जो वास्तव में एक खराब अभ्यास है। It'be कुछ और करने के लिए और अधिक सहज ज्ञान युक्त:
SwingUtilities.invokeLater (नया रननाबल) (सार्वजनिक शून्य चला () {परीक्षक टी = नए परीक्षक (); टी.डो एसोमस्टफ ();}}) ;
Comments
Post a Comment