जावा मल्टी-थ्रेडिंग साक्षात्कार प्रश्न और उत्तर का परिचय
अपने स्वतंत्र मंच के कारण जावा इन दिनों तेजी से बढ़ रहा है। इसे कहीं भी चलाया जा सकता है और इसलिए विभिन्न आगामी प्रौद्योगिकियों के साथ व्यापक रूप से उपयोग किया जा रहा है। इसके लिए तैयार होने के लिए, बहु-थ्रेडिंग एक महत्वपूर्ण विषय है जो साक्षात्कारों पर केंद्रित है। इसलिए आपको अंत में जावा मल्टी-थ्रेडिंग में अपना सपनों का काम मिल गया है, लेकिन यह सोच रहा है कि साक्षात्कार को कैसे क्रैक करना है और संभावित क्या हो सकता है जावा मल्टी-थ्रेडिंग साक्षात्कार प्रश्न । प्रत्येक साक्षात्कार अलग होता है और नौकरी का दायरा भी अलग होता है। आइए कुछ महत्वपूर्ण जावा मल्टी-थ्रेडिंग साक्षात्कार प्रश्न के माध्यम से जाएं जिन्हें जावा मल्टी-थ्रेडिंग साक्षात्कार में पूछा जा सकता है जिन्हें आप आगे बढ़ाएंगे।
नीचे शीर्ष जावा मल्टी-थ्रेडिंग साक्षात्कार प्रश्न और उत्तर हैं
1. जावा में थ्रेड क्या है और आप इसे कैसे कार्यान्वित करते हैं?
उत्तर:
एक थ्रेड एक कार्यक्रम के भीतर बहु-कार्य और बहु-प्रसंस्करण की सुविधा प्रदान करता है। यह सीपीयू प्रभावी ढंग से उपयोग करता है और आवेदन के प्रदर्शन में सुधार करने में मदद करता है। जावा उपयोगकर्ता को एक समय में एकाधिक थ्रेड का उपयोग करने में सक्षम बनाता है। यह किसी भी बाधा के बिना अन्य कार्यक्रमों के साथ समानांतर में चलाया जा सकता है। यह प्रक्रिया के लिए एक समय कम करने में मदद करता है। उदाहरण के लिए, यदि किसी प्रोग्राम को निष्पादित करने में 60 सेकंड लगते हैं, तो हम 6 थ्रेड का उपयोग कर सकते हैं जो हमें 10 सेकंड में परिणाम देगा।
जावा प्रोग्राम में थ्रेड को लागू करने के दो तरीके प्रदान करता है। इंटरफेस java.lang.Runnable एक उदाहरण java.lang.A थ्रेड है जिसके लिए एक उदाहरण के माध्यम से निष्पादित करने के लिए एक कार्य की आवश्यकता है। थ्रेड क्लास पहले से ही रननेबल लागू करता है, इसलिए उपयोगकर्ता थ्रेड क्लास को विस्तारित करके या रननेबल इंटरफ़ेस को कार्यान्वित करके रन () विधि को सीधे ओवरराइड कर सकता है।
2. रननेबल का उपयोग करने के लिए और जावा में थ्रेड का उपयोग कब करें?
उत्तर:
जावा कक्षा के एकाधिक उत्तराधिकारों का समर्थन नहीं करता है, लेकिन यह एक समय में कई इंटरफेस को लागू करने की अनुमति देता है। इसलिए, थ्रेड क्लास को विस्तारित करने से रननेबल को लागू करना बेहतर होगा।
3. आप थ्रेड और प्रक्रिया के बीच कैसे अंतर करते हैं?
उत्तर:
एक थ्रेड एक प्रक्रिया का सबसेट है। एक प्रक्रिया में इसके लिए कई थ्रेड चल सकते हैं। थ्रेड किसी प्रक्रिया के किसी भी भाग को चला सकते हैं। एक प्रक्रिया का अपना पता होता है जहां इसे संग्रहीत किया जाता है, जबकि थ्रेड उस प्रक्रिया के पते को साझा करता है जिसने इसे बनाया है। एक प्रक्रिया बनाना एक व्यस्त प्रक्रिया है जबकि थ्रेड आसानी से बनाया जा सकता है। एक थ्रेड आमतौर पर हल्के वजन के रूप में जाना जाता है। इंटरप्रोसेस संचार मुश्किल है जबकि थ्रेड प्रतीक्षा () के जावा विधियों का उपयोग करके आसानी से संवाद कर सकते हैं और सूचित कर सकते हैं ()। प्रक्रियाएं स्वतंत्र हैं, इसलिए प्रक्रिया में किए गए किसी भी बदलाव से बाल प्रक्रियाओं को प्रभावित नहीं होता है। इसके विपरीत, यदि थ्रेड में परिवर्तन किए जाते हैं तो संभावनाएं होती हैं कि अन्य थ्रेड प्रभावित हो सकते हैं।
4. यह क्यों कहा जाता है कि थ्रेड व्यवहार अप्रत्याशित है?
उत्तर:
इसका कारण थ्रेड शेड्यूलर है जो थ्रेड के निष्पादन को संभालता है। शेड्यूलर के पास अलग-अलग प्लेटफॉर्म विंडोज , यूनिक्स , लिनक्स आदि पर अलग-अलग प्रदर्शन हो सकते हैं। एक ही थ्रेड को निष्पादित करते समय विभिन्न प्लेटफॉर्म पर और कभी-कभी एक ही मंच पर अलग-अलग आउटपुट दे सकते हैं। इसे हल करने के लिए, उपयोगकर्ता एक ही रननेबल ऑब्जेक्ट बना सकता है, दोनों थ्रेड में रन () लूप बना सकता है और दोनों थ्रेड को एक साथ शुरू कर सकता है। आदर्श रूप से, शेड्यूलर को दोनों थ्रेड एक साथ चुनना चाहिए और प्रदर्शन प्रभावित नहीं होना चाहिए, लेकिन दोनों थ्रेड गुमनाम रूप से लूप दर्ज करेंगे।
5. जावा में एक अस्थिर चर क्या है और इसका महत्व क्या है?
उत्तर:
जावा विभिन्न थ्रेड में मौजूद चर साझा करने के लिए उपयोगकर्ता को सुविधा प्रदान करता है। एक अस्थिर चर एक विशेष संशोधक के रूप में कार्य करता है जिसका उपयोग केवल आवृत्ति चर के लिए किया जा सकता है। चूंकि इस चर को साझा किया जाता है, इसके साथ लगातार परिवर्तन होंगे। थ्रेड को यह सुनिश्चित करना चाहिए कि इसमें इन चरों तक विशेष पहुंच हो और साझा चर के आपसी बहिष्करण के लिए लॉक को मजबूर किया गया हो। यह सुनिश्चित करता है कि किसी भी परिणामस्वरूप पढ़ने से पहले एक लेखन होगा। जावा मेमोरी मॉडल इस चर की स्थिरता सुनिश्चित करता है। अस्थिर विधियां वहां नहीं हो सकती हैं क्योंकि इन्हें केवल चर के रूप में उपयोग किया जा सकता है।
6. सिंक्रनाइज़ किए गए कीवर्ड का उपयोग क्या है? सिंक्रनाइज़ और अस्थिर कीवर्ड के बीच क्या अंतर है?
उत्तर:
सिंक्रनाइज़ किए गए कीवर्ड का उपयोग तब किया जाता है जब उद्देश्य कोड के उचित अनुभाग में एक समय में केवल एक थ्रेड चलाया जाता है। इसका उपयोग चार प्रकार के विभिन्न ब्लॉक को नीचे दिखाने के लिए किया जा सकता है:
1) इंस्टेंस विधियों
2) स्टेटिक विधियां
3) उदाहरण विधियों के अंदर कोड ब्लॉक
4) स्थिर तरीकों के अंदर कोड ब्लॉक
इसे घोषित किया जा सकता है:
सार्वजनिक सिंक्रनाइज़ शून्य उदाहरण () {}
अस्थिर और सिंक्रनाइज़ किए गए कीवर्ड के बीच का अंतर यह है कि सिंक्रनाइज़ किया जा सकता है चर और विधियों के साथ, जबकि अस्थिरता विधियों के साथ उपयोग नहीं किया जा सकता है। अस्थिर चर कैश मेमोरी में संग्रहीत नहीं होते हैं, सिंक्रनाइज़ वैरिएबल कैश मेमोरी में संग्रहीत होते हैं। एक अस्थिर चर कभी डेडलॉक में नहीं उतरेगा क्योंकि इसे किसी लॉक को प्राप्त करने की आवश्यकता नहीं होती है। सिंक्रनाइज़ वैरिएबल में जबकि अगर वे ठीक से नहीं किए जाते हैं तो यह डेडलॉक में समाप्त हो सकता है।
7. इंतजार क्यों करें (), सूचित करें () और सभी को सूचित करें () ऑब्जेक्ट क्लास में मौजूद हैं और थ्रेड क्लास में नहीं हैं?
उत्तर:
ऑब्जेक्ट क्लास में मॉनीटर होते हैं जो थ्रेड को किसी ऑब्जेक्ट को लॉक करने की अनुमति देते हैं, जबकि थ्रेड में कोई मॉनीटर नहीं होता है। जब उपरोक्त विधियों में से कोई भी कहा जाता है तो यह ऑब्जेक्ट को रिलीज़ करने के लिए किसी अन्य थ्रेड की प्रतीक्षा करता है और मॉनिटर को अधिसूचित () को सूचित करके सूचित करता है या सभी को सूचित करता है ()। जब सूचित करें () विधि कहा जाता है तो यह ऑब्जेक्ट को रिलीज़ होने की प्रतीक्षा कर रहे सभी थ्रेड को सूचित करने का काम करता है। ऑब्जेक्ट क्लास की मॉनिटर ऑब्जेक्ट के लिए चेक करता है यदि यह उपलब्ध है या नहीं। इन विधियों वाले थ्रेड क्लास में मदद नहीं होगी क्योंकि ऑब्जेक्ट पर एकाधिक थ्रेड मौजूद हैं और इसके विपरीत नहीं।
8. नींद () और प्रतीक्षा () विधियों के बीच अंतर का विस्तार करें।
उत्तर:
1) नींद () विधि थ्रेड पर बुलाया जाता है और वस्तुओं नहीं। प्रतीक्षा करें () विधि वस्तुओं पर कहा जाता है।
2) जब प्रतीक्षा करें () विधि कहा जाता है तो मॉनीटर थ्रेड को प्रतीक्षा करने के लिए चलने से स्थानांतरित करता है। एक बार थ्रेड प्रतीक्षा में है () तो यह केवल उस स्थान के लिए अधिसूचित हो सकता है जब उसने उस ऑब्जेक्ट के लिए सूचित किया है () या नोटीफेयल ()। शेड्यूलर इसके बाद राज्य को बदल देता है। नींद () विधि में रहते हुए, राज्य प्रतीक्षा करने के लिए बदल दिया जाता है और सोने के समय खत्म होने के बाद ही चलने योग्य हो जाएगा।
3) प्रतीक्षा करें () विधि java.lang.Object वर्ग का एक हिस्सा है, जबकि नींद () java.lang का एक हिस्सा है। थ्रेड क्लास।
4) प्रतीक्षा करें () हमेशा एक सिंक्रनाइज़ ब्लॉक के साथ प्रयोग किया जाता है क्योंकि इसे नींद के दौरान ऑब्जेक्ट को लॉक करने की आवश्यकता होती है () बाहरी सिंक्रनाइज़ ब्लॉक से उपयोग किया जा सकता है।
प्रश्न 9) जावा में थ्रेड कैसे शुरू करें?
उत्तर:
जावा में, मल्टीथ्रेडिंग एक थ्रेड शुरू करने के लिए मजबूर नहीं कर सकता है। केवल थ्रेड शेड्यूलर थ्रेड को नियंत्रित कर सकता है और वे नियंत्रण के लिए किसी भी एपीआई के संपर्क में नहीं आते हैं।
प्रश्न 10) क्या थ्रेड () और नींद () तरीकों को बुलाए जाने पर थ्रेड ऑब्जेक्ट लॉक छोड़ देता है?
उत्तर:
जब कोई थ्रेड नींद में होता है () विधि यह लॉक नहीं छोड़ती है और राज्य प्रतीक्षा करने के लिए आगे बढ़ती है।थ्रेड खत्म होने के लिए सोने के समय के लिए इंतजार कर रहा है। जब प्रतीक्षा () विधि का उपयोग किया जाता है तो थ्रेड ऑब्जेक्ट लॉक छोड़ देता है और प्रतीक्षा स्थिति में जाता है। एक बार अधिसूचित () को इसे फिर से चलाने के लिए कहा जाता है और ताला प्राप्त करता है।
अनुशंसित लेख
यह जावा मल्टी-थ्रेडिंग साक्षात्कार प्रश्न और उत्तर की सूची के लिए एक गाइड रहा है ताकि उम्मीदवार इन जावा मल्टी-थ्रेडिंग इंटरव्यू प्रश्न को आसानी से क्रैकडाउन कर सके। अधिक जानने के लिए आप निम्नलिखित लेख भी देख सकते हैं –