शीर्ष 40 मल्टीथ्रेडिंग साक्षात्कार प्रश्न और उत्तर (2025)
शीर्ष जावा मल्टीथ्रेडिंग साक्षात्कार प्रश्न
यहां नए लोगों के साथ-साथ अनुभवी उम्मीदवारों के लिए अपने सपनों की नौकरी पाने के लिए मल्टीथ्रेडिंग साक्षात्कार प्रश्न साक्षात्कार प्रश्न और उत्तर दिए गए हैं।
1) धागा क्या है?
थ्रेड निष्पादन की एक समवर्ती इकाई है। हम कह सकते हैं कि यह उस प्रक्रिया का हिस्सा है जो प्रक्रिया के अन्य हिस्सों के साथ आसानी से चल सकती है।
निःशुल्क पीडीएफ डाउनलोड: मल्टीथ्रेडिंग साक्षात्कार प्रश्न और उत्तर
2) मल्टीथ्रेडिंग क्या है?
multithreading जावा में सीपीयू के अधिकतम उपयोग के लिए दो या दो से अधिक थ्रेड्स को एक साथ निष्पादित करने की एक प्रक्रिया है।
मुख्य लाभ यह है:
- थ्रेड्स समान पता स्थान साझा करते हैं
- धागा हल्का रहता है
- धागों के बीच संचार की लागत कम है।
3) धागे से जुड़े राज्य कौन से हैं?
- तैयार
- रनिंग
- इंतज़ार कर रही
- मृत अवस्था
4) थ्रेड जीवन चक्र पर चर्चा करें?
एक धागे का जीवन चक्र उसमें चल रही प्रक्रियाओं के जीवन चक्र के समान है ऑपरेटिंग सिस्टम. अपने जीवन चक्र के दौरान, धागा एक अवस्था से दूसरी अवस्था में जा सकता है। हालाँकि, यह उस पर किए गए ऑपरेशन पर निर्भर करता है।
5) थ्रेड स्टेट्स क्या हैं?
विभिन्न थ्रेड स्थितियाँ निम्नलिखित हैं:
नई: एक थ्रेड जो अभी इंस्टेंटिअट हुआ है वह नई स्थिति में है। जब एक प्रारंभ() विधि लागू की जाती है, तो थ्रेड तैयार स्थिति बन जाता है। फिर इसे थ्रेड शेड्यूलर द्वारा चलने योग्य स्थिति में ले जाया जाता है।
- चलने योग्य: एक थ्रेड जो चलने के लिए तैयार है
- चल रहा है: जो थ्रेड निष्पादित हो रहा है वह चालू अवस्था में है।
- अवरोधित: एक अवरुद्ध थ्रेड इस स्थिति में मॉनिटर लॉक की प्रतीक्षा कर रहा है। यह बात तब भी हो सकती है जब कोई थ्रेड I/O ऑपरेशन करता है और अगली स्थिति में चला जाता है।
- इंतज़ार कर रही: यह एक थ्रेड है जो विशिष्ट क्रिया करने के लिए दूसरे थ्रेड की प्रतीक्षा कर रहा है।
- समयबद्ध_प्रतीक्षा: यह एक ऐसा थ्रेड है जो दूसरे थ्रेड के प्रदर्शन की प्रतीक्षा कर रहा है।
- समाप्त: एक थ्रेड जो बाहर निकल चुका है वह इस स्थिति में है।
6) थ्रेड और प्रोसेस के बीच प्रमुख अंतर क्या हैं?
थ्रेड प्रक्रिया का एक उपसमूह है. प्रक्रिया में एकाधिक थ्रेड हो सकते हैं. प्रक्रिया अलग-अलग मेमोरी स्पेस पर चल सकती है, लेकिन सभी थ्रेड समान मेमोरी स्पेस साझा करते हैं।
7) गतिरोध क्या है?
डेडलॉक एक ऐसी स्थिति है जब एक थ्रेड किसी ऑब्जेक्ट लॉक की प्रतीक्षा कर रहा है, जिसे दूसरे थ्रेड द्वारा अधिग्रहित किया गया है और दूसरा थ्रेड भी ऑब्जेक्ट लॉक की प्रतीक्षा कर रहा है जिसे पहले थ्रेड द्वारा अधिग्रहित किया गया है। चूँकि दोनों थ्रेड एक-दूसरे के रिलीज़ होने की प्रतीक्षा कर रहे हैं, इस स्थिति को गतिरोध कहा जाता है।
8) लाइवलॉक क्या है?
लाइवलॉक तब होता है जब सभी थ्रेड अवरुद्ध हो जाते हैं और आवश्यक संसाधनों की अनुपलब्धता और किसी भी अनब्लॉक थ्रेड की गैर-मौजूदगी के कारण निष्पादित नहीं हो पाते हैं।
लाइवलॉक निम्नलिखित स्थितियों में हो सकता है:
- जब किसी प्रोग्राम में सभी थ्रेड शून्य पैरामीटर वाले किसी ऑब्जेक्ट पर निष्पादित होते हैं। प्रोग्राम लाइव-लॉक है और तब तक संसाधित नहीं होता जब तक कि एक या अधिक थ्रेड संबंधित ऑब्जेक्ट पर ऑब्जेक्ट.नोटिफ़ाई () या ऑब्जेक्ट.नोटिफ़ाईऑल() को कॉल नहीं करते।
- लाइवलॉक तब भी होता है जब किसी प्रोग्राम के सभी थ्रेड अनंत लूप में फंस जाते हैं।
9) मॉनिटर क्या है?
- मॉनिटर कोड का एक निकाय है जिसे एक समय में केवल एक थ्रेड द्वारा निष्पादित किया जा सकता है।
- यदि कोई अन्य थ्रेड उसी समय पहुंच प्राप्त करने का प्रयास करता है, तो उसे तब तक निलंबित कर दिया जाएगा जब तक कि वर्तमान थ्रेड मॉनिटर जारी नहीं कर देता।
10) थ्रेड भुखमरी से आपका क्या तात्पर्य है?
उस स्थिति में जब किसी थ्रेड में उसके निष्पादन के लिए पर्याप्त सीपीयू नहीं होता है तो थ्रेड भुखमरी होती है।
हालाँकि, यह निम्नलिखित परिदृश्यों में हो सकता है
- कम प्राथमिकता वाले थ्रेड को उच्च प्राथमिकता वाले थ्रेड की तुलना में कम सीपीयू मिलेगा। कम प्राथमिकता वाला थ्रेड गणना करने के लिए अधिक सीपीयू स्थान पाने के इंतजार में भूखा रह सकता है।
- थ्रेड ऑब्जेक्ट के मॉनिटर पर लॉक के लिए अनिश्चित काल तक प्रतीक्षा कर सकता है लेकिन सूचित करें() बार-बार कुछ अन्य थ्रेड को जागृत कर सकता है। उस स्थिति में, थ्रेड भी भूखा रह जाता है।
11) मल्टी-थ्रेडिंग में व्यस्त स्पिन का क्या अर्थ है?
व्यस्त स्पिन एक ऐसी तकनीक है जिसका उपयोग समवर्ती प्रोग्रामर किसी थ्रेड को कुछ शर्तों पर प्रतीक्षा कराने के लिए करते हैं। यह प्रतीक्षा() और नींद() जैसे पारंपरिक तरीकों से काफी अलग है जिसमें सीपीयू नियंत्रण को छोड़ना शामिल है। इस विधि के लिए सीपीयू को छोड़ने की आवश्यकता नहीं है, इसके बजाय यह केवल खाली लूप चलाता है।
12) मल्टी-थ्रेडिंग में संदर्भ-स्विचिंग क्या है?
यह सीपीयू स्थिति को संग्रहीत और पुनर्स्थापित करने की प्रक्रिया है। इससे मदद मिलती है बायोडाटा बाद के समय में उसी बिंदु से थ्रेड निष्पादन। यह मल्टीटास्किंग ऑपरेटिंग सिस्टम और मल्टी-थ्रेडेड वातावरण के लिए समर्थन के लिए आवश्यक सुविधाओं में से एक है।
13) थ्रेड व्यवहार अप्रत्याशित क्यों है?
हम कह सकते हैं कि थ्रेड का व्यवहार अप्रत्याशित है क्योंकि थ्रेड का निष्पादन थ्रेड शेड्यूलर पर निर्भर करता है। किसी को यह याद रखना चाहिए कि प्रत्येक थ्रेड शेड्यूलर का विंडोज, यूनिक्स आदि जैसे विभिन्न प्लेटफार्मों पर एक अलग कार्यान्वयन होता है।
14) आप किसी थ्रेड के निष्पादन को एक निश्चित समय के लिए कैसे रोक सकते हैं?
स्लीप () विधि का उपयोग थ्रेड के निष्पादन को एक निश्चित समय के लिए रोकने के लिए किया जाता है। हालाँकि, यह किसी विशिष्ट समय के लिए थ्रेड की प्रोसेसिंग को नहीं रोकेगा। हालाँकि, जब थ्रेड नींद से जागता है तो उसकी स्थिति चलने योग्य में बदल जाती है और थ्रेड शेड्यूलिंग के आधार पर, इसे निष्पादित किया जाएगा।
15) ऐसे कौन से तरीके हैं जिनसे कोई थ्रेड प्रतीक्षा स्थिति में प्रवेश कर सकता है?
एक थ्रेड निम्नलिखित तरीकों से प्रतीक्षा स्थिति में प्रवेश कर सकता है
- नींद() विधि का उपयोग करना
- I/O पर अवरोधन
- किसी ऑब्जेक्ट का लॉक प्राप्त करने का असफल प्रयास
- किसी ऑब्जेक्ट की प्रतीक्षा() विधि को लागू करके
16) यदि हम रन विधि को ओवरराइड नहीं करते हैं तो क्या होगा?
जावा में, जब हम किसी थ्रेड पर स्टार्ट() विधि को कॉल करते हैं, तो यह आंतरिक रूप से नव निर्मित थ्रेड के साथ रन() विधि को कॉल करता है। इसलिए, यदि हम रन() विधि को ओवरराइड नहीं करते हैं, तो नव निर्मित थ्रेड को कॉल नहीं किया जाएगा इसलिए कुछ भी नहीं होगा।
उदाहरण:
class MyThread extends Thread { //don't override run() method } public class DontOverrideRun { public static void main(String[] args) { System.out.println("main has started."); MyThread thread1=new MyThread(); thread1.start(); System.out.println("main has ended."); } }
17) Thread.start() और Thread?run() विधि के बीच मुख्य अंतर क्या है?
थ्रेड वर्ग की Thread.start() विधि (मूल विधि) थ्रेड में Thread.A run() विधि को चलाने का कार्य करती है। इसलिए, यदि हम सीधे थ्रेड को कॉल करते हैं तो रन() विधि भी उसी थ्रेड में निष्पादित होती है। इस प्रकार यह नया थ्रेड बनाने का उद्देश्य कभी हल नहीं करेगा।
18) जावा में थ्रेड कैसे बनाएं?
जावा में थ्रेड बनाने की दो विधियाँ हैं।
- पहले Runnable इंटरफ़ेस लागू करके और फिर उससे एक थ्रेड ऑब्जेक्ट बनाएं।
- दूसरी विधि थ्रेड क्लास का विस्तार करना है।
19) थ्रेड प्रायोरिटी का क्या अर्थ है?
प्रत्येक धागे की एक प्राथमिकता होती है। हालाँकि, उच्च प्राथमिकता को निष्पादन में भी प्राथमिकता मिलती है। हालाँकि, यह थ्रेड शेड्यूलर कार्यान्वयन पर भी निर्भर करता है जो ओएस पर निर्भर है। थ्रेड की प्राथमिकता को बदलना संभव है, लेकिन यह आश्वासन नहीं देता है कि उच्च प्राथमिकता वाले थ्रेड को पहले निष्पादित किया जाएगा।
20) जॉइन() विधि क्या करती है?
जॉइन() विधि थ्रेड के ख़त्म होने की प्रतीक्षा करती है। यह सभी चल रहे थ्रेड्स को तब तक निष्पादित होने से रोकने के लिए मजबूर करता है जब तक कि थ्रेड अपना काम पूरा करने के लिए जुड़ नहीं जाता।
21) जावा शटडाउन हुक क्या है?
JVM बंद होने पर संसाधनों को साफ करने के लिए जावा शटडाउन हुक का उपयोग किया जाता है। स्वच्छ संसाधनों का अर्थ है लॉग फ़ाइल बंद करना, कुछ अलर्ट भेजना या कुछ और। JVM बंद होने से पहले कोड निष्पादित करने के लिए शटडाउन हुक का उपयोग करना आवश्यक है।
22) जावा में वोलेटाइल के दो मुख्य उपयोग क्या हैं?
थ्रेड्स को स्थानीय मेमोरी में वेरिएबल्स के मान रखने की अनुमति है यदि किसी वेरिएबल को अस्थिर के रूप में चिह्नित किया गया है, तो हर बार उसी वेरिएबल का उपयोग किया जाता है, इसे मुख्य मेमोरी से पढ़ा जाना चाहिए।
उसी तरह, हर बार जब वेरिएबल लिखा जाता है, तो मान को मुख्य मेमोरी में संग्रहीत किया जाना चाहिए।
23) आप जावा में दो थ्रेड के बीच डेटा कैसे साझा कर सकते हैं?
हम किसी साझा ऑब्जेक्ट या समवर्ती का उपयोग करके थ्रेड्स के बीच डेटा प्राप्त कर सकते हैं डेटा संरचना ब्लॉकिंगक्यू की तरह। यह प्रतीक्षा और सूचना विधियों का उपयोग करके निर्माता-उपभोक्ता पैटर्न लागू करता है। इसमें दो धागों के बीच वस्तुओं को साझा करना भी शामिल है।
24) एकाधिक धागों को एक साथ कैसे नियंत्रित किया जा सकता है?
यदि थ्रेडग्रुप ऑब्जेक्ट में कई थ्रेड बनाए गए हैं तो उन्हें एक साथ नियंत्रित किया जा सकता है।
25) जावा में ब्लॉकिंग विधि क्या है?
जावा में ब्लॉकिंग विधि एक ऐसी विधि है जो कार्य पूरा होने तक ब्लॉक करती है। उदाहरण के लिए, क्लाइंट कनेक्ट होने तक सर्वरसॉकेट ब्लॉक की () विधि को स्वीकार करें। यहां, ब्लॉकिंग से तात्पर्य ऐसी किसी भी चीज़ से है जिसका नियंत्रण कॉल करने वाले के पास तब तक वापस नहीं आएगा जब तक कि कार्य समाप्त न हो जाए।
26) प्रतीक्षा () और निद्रा () विधि के बीच मुख्य अंतर क्या है?
इंतज़ार() | नींद() |
इस विधि को ऑब्जेक्ट क्लास में परिभाषित किया गया है | विधि को थ्रेड क्लास में परिभाषित किया गया है |
प्रतीक्षा करें() विधि लॉक जारी करती है | यह विधि कभी भी लॉक नहीं खोलती। |
27) अपरिवर्तनीय वस्तु क्या है? यह समवर्ती एप्लिकेशन लिखने में कैसे मदद कर सकता है?
किसी भी वस्तु को चुनौती देने योग्य नहीं माना जा सकता है यदि निर्माण के बाद उसकी स्थिति नहीं बदलती है। अपरिवर्तनीय वस्तुओं का उपयोग सरल, विश्वसनीय और समवर्ती अनुप्रयोग बनाने में किया जाता है।
ऑब्जेक्ट को अपरिवर्तनीय बनाने के लिए, क्लास और उसके सदस्य को अंतिम बनाना महत्वपूर्ण है ताकि एक बार ऑब्जेक्ट बनने के बाद, इसकी स्थिति संशोधित न हो।
28) मुझे झुकने और सोने के बीच अंतर बताएं?
जब कोई कार्य अपनी उपज() विधि को लागू करता है, तो यह तैयार स्थिति में वापस आ जाता है।
जब कोई कार्य अपनी नींद() विधि को लागू करता है, तो यह प्रतीक्षा स्थिति में वापस आ जाता है।
29) थ्रेडपूल क्या है?
थ्रेडपूल थ्रेड्स का एक पूल है जो विशिष्ट कार्य को निष्पादित करने के लिए निश्चित संख्या में थ्रेड्स का पुन: उपयोग करता है।
30) Synchronized कीवर्ड का क्या उपयोग है?
सिंक्रोनाइज़्ड कीवर्ड को स्थिर या गैर-स्थैतिक विधि पर लागू किया जा सकता है। सिंक्रोनाइज़्ड का उपयोग करके केवल एक थ्रेड सिंक्रोनाइज़्ड तरीकों तक पहुंच सकता है। हालाँकि, ऐसी स्थिति में जहां कई थ्रेड हैं जो एक ही विधि तक पहुंचने का प्रयास कर रहे हैं। उस समय, अन्य थ्रेड्स को निष्पादन थ्रेड के लिए प्रतीक्षा करनी पड़ती है। यह दौड़ की स्थिति को रोकने के लिए ऑब्जेक्ट पर लॉक भी प्रदान करता है।
public void synchronized method1(){} public void synchronized staticmethod1(){} public void myMethod(){ synchronized (this){ //synchronized keyword on block of code } }
31) अस्थिर कीवर्ड क्या है?
अस्थिर कीवर्ड एक क्वालीफायर है जो किसी वेरिएबल के घोषित होने पर उस पर लागू होता है। यह कंपाइलर को बताता है कि वेरिएबल का मान किसी भी समय बदल सकता है - कोड द्वारा कोई कार्रवाई किए बिना।
32) जावा में नोटिफाई और नोटिफाईऑल के बीच मुख्य अंतर क्या हैं?
नोटिफाई () विधि किसी विशेष थ्रेड को चुनने का कोई तरीका प्रदान नहीं करती है, इसलिए यह केवल तभी उपयोगी है जब एक While NotifyAll() सभी थ्रेड्स को एक अधिसूचना भेजता है। यह उन्हें तालों के लिए प्रतिस्पर्धा करने की भी अनुमति देता है। यह यह भी सुनिश्चित करता है कि कम से कम एक धागा आगे बढ़ेगा।
33) थ्रेड के स्टैक आकार को नियंत्रित करने के लिए किस JVM पैरामीटर का उपयोग किया जाता है?
जावा में थ्रेड के स्टैक आकार को नियंत्रित करने के लिए Xss पैरामीटर का उपयोग किया जाता है।
34) क्या आप जावा में एक थ्रेड दो बार शुरू कर सकते हैं?
नहीं, एक बार थ्रेड शुरू होने के बाद इसे दूसरी बार शुरू नहीं किया जा सकता।
35) थ्रेड क्लास की यील्ड पद्धति का उपयोग करने का उद्देश्य क्या है?
यील्ड विधि वर्तमान थ्रेड को सीपीयू को छोड़ने के लिए अनुरोध करने का सबसे सरल तरीका है ताकि अन्य थ्रेड। यह एक स्थिर विधि है और केवल यह गारंटी देती है कि वर्तमान थ्रेड सीपीयू को छोड़ देगा लेकिन यह कुछ भी नहीं बताता है कि कौन सा अन्य थ्रेड भी सीपीयू को प्रभावित करता है।
36) हम कब कह सकते हैं कि जावा में थ्रेड्स हल्की प्रक्रिया नहीं हैं?
जब एक ही प्रक्रिया के थ्रेड एक साथ निष्पादित हो रहे हों तो थ्रेड हल्की प्रक्रिया नहीं होती हैं। हालाँकि, यदि उस समय विभिन्न प्रक्रियाओं के थ्रेड्स एक साथ निष्पादित हो रहे हों तो थ्रेड्स एक हेवीवेट प्रक्रिया बन जाते हैं।
37) क्या जावा क्लास के कंस्ट्रक्टर को सिंक्रोनाइज़ करना संभव है?
जावा मानक के रूप में, कंस्ट्रक्टर्स को सिंक्रनाइज़ नहीं किया जा सकता है क्योंकि थ्रेड निर्माण प्रक्रिया समाप्त होने से पहले अन्य थ्रेड ऑब्जेक्ट को नहीं देख सकते हैं। जावा ऑब्जेक्ट कंस्ट्रक्टर को सिंक्रोनाइज़ करने की कोई आवश्यकता नहीं है क्योंकि यह निर्मित होने वाले ऑब्जेक्ट को लॉक कर देगा।
38) क्षणिक चर क्या है?
क्षणिक चर एक ऐसा चर है जिसे क्रमांकन के दौरान क्रमबद्ध नहीं किया जा सकता है। क्रमांकन के दौरान इसे इसके डिफ़ॉल्ट मान पर प्रारंभ किया जाता है।
ये साक्षात्कार प्रश्न आपके मौखिक (मौखिक) में भी मदद करेंगे
Hii
यह वास्तव में मेरी मदद करता है। साक्षात्कार की तैयारी के दौरान.
इस लेख को लिखना और यह जानकारी प्रदान करना वास्तव में सराहनीय है।
मैं करने योग्य हूँ
5) थ्रेड स्टेट्स क्या हैं?
रननेबल रनिंग स्थिति नहीं है। यह चलने के लिए तैयार है
अद्यतन! इस पर ध्यान दिलाने के लिए धन्यवाद
1. चलने योग्य अवस्थाओं को ओएस स्तर पर एक बाइलेयर के रूप में देखा जाता है
2. लगभग सभी प्रोग्रामिंग भाषाएं थ्रेड को चलने योग्य या नहीं चलने योग्य के रूप में देखती हैं।
3. एक चलने योग्य धागा या तो (तैयार या चालू) स्थिति में हो सकता है।
4. आपके पास चलने योग्य अवस्था में दो थ्रेड हो सकते हैं, लेकिन "चलने योग्य" अवस्था में केवल एक थ्रेड मौजूद होगा,
जबकि दूसरा धागा "चालू" स्थिति में मौजूद है।