Friday, 15 March 2013

multithreading - Java threads and synchronized -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

क्या कोई मेरी मदद कर सकता है मुसीबत? मैं जावा थ्रेड्स का उपयोग कर निम्न आउटपुट को प्रिंट करना चाहता हूं।

  * + - * + - * + - * + - * + - * + - * + - * + - * + - * + - (150 बार)  

मैंने निम्नलिखित कोड लिखा है मुझे पता है कि यह पूरी तरह से सही नहीं है, लेकिन मुझे आपकी मदद की आवश्यकता है।

  पैकेज प्रिंट सिंबॉल्स; पब्लिक क्लास प्रिंट टेस्टड्रिवर {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {PrintTestDriver ड्राइवर = नया प्रिंटटस्टड्रिवर (); driver.test (); } सार्वजनिक सिंक्रनाइज़ किए गए शून्य परीक्षण () {MyPrinter myPrinter = नया MyPrinter (); MyPrintThread एक = नया MyPrintThread ("*", myPrinter); MyPrintThread b = नया MyPrintThread ("+", myPrinter); MyPrintThread c = नया MyPrintThread ("-", myPrinter); शुरुआत(); b.start (); c.start (); }} पैकेज प्रिंट सिंबॉल्स; सार्वजनिक वर्ग MyPrintThread थ्रेड का विस्तार {स्ट्रिंग का नाम; MyPrinter प्रिंट; सार्वजनिक MyPrintThread (स्ट्रिंग का नाम, माइपरिंटर प्रिंट) {this.name = name; यह। प्रिंट = प्रिंट; } सार्वजनिक शून्य रन () {print.printname (नाम); }} पैकेज प्रिंट सिंबॉल्स; सार्वजनिक वर्ग MyPrinter {सार्वजनिक MyPrinter () {}; सार्वजनिक सिंक्रनाइज़ किए गए शून्य प्रिंटनाम (स्ट्रिंग नाम) {for (int i = 0; i & lt; 10; i ++) {System.out.print (name); कोशिश {प्रतीक्षा (); } पकड़ (बाधित ईक्सेप्शन ई) {// TODO ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); } सूचित करेंसभी (); }}  

एक वेरिएबल है जो ट्रैक करता है कि कौन सा धागा अगले जाने वाला है। जब कोई धागा जागता है (अधिसूचित होने के कारण) यह जांचता है कि क्या यह धागा की बारी है यदि नहीं, तो फिर से ब्लॉक करें। यदि हां, तो अपने चरित्र को मुद्रित करें, यह बताएं कि कौन सा धागा आगे जाता है, अन्य धागे को सूचित करें और फिर से ब्लॉक करें।


No comments:

Post a Comment