धागे के निष्पादन आदेश को अप्रत्याशित बनाता है क्या? क्या किसी बिंदु पर शेड्यूलर यादृच्छिक संख्याओं का उपयोग करता है या सिस्टम संसाधनों की जांच करता है या देखता है कि कौन सा धागा काफी लंबा इंतजार कर रहा है या ...?धागे के निष्पादन आदेश को अप्रत्याशित बनाता है क्या?
उत्तर
अनुसूचक, आमतौर पर ओएस अनुसूचक है। यह कई कारकों से प्रभावित है, जिसमें मशीन पर अन्य प्रक्रियाएं क्या कर रही हैं, हार्डवेयर क्या कर रहा है (इंटरप्ट्स) इत्यादि। ओएस के आधार पर, मुझे लगता है कि कभी-कभी यादृच्छिक संख्या शामिल हो सकती है, लेकिन मुझे आम तौर पर संदेह नहीं है। यह केवल इतना अप्रत्याशित तरीका है कि एकाधिक परिवर्तनीय समय अंतराल ओवरलैप हो सकता है।
जेवीएम के आधार पर, जेवीएम थ्रेड को स्थानांतरित कर सकता है क्योंकि यह ओएस और ओएस शेड्यूलर थ्रेड शेड्यूल करेगा, या जेवीएम थ्रेड को शेड्यूल करने का फैसला कर सकता है, इसलिए पहला अंतर (2 अलग मशीन पर अप्रत्याशित व्यवहार चाहे धागा JVM या ओएस द्वारा अनुसूचित किया जा रहा है एक ही स्थिति) यहाँ आता है,, यू नहीं कर सकते वास्तव में यकीन है कि ..... इसके अलावा वहाँ कारकों की संख्या में हैं, धागे की प्राथमिकता एक कारक है हो (हम प्राथमिकता) सेट कर सकते हैं, संसाधन है एक और कारक .... इसकी कम संभावना है कि यादृच्छिक संख्या शामिल हैं।
अनुसूचक में यादृच्छिक संख्या का उपयोग करते हुए ओएस का एक महत्वपूर्ण खंड में अनावश्यक भूमि के ऊपर का परिचय होता है, इसलिए यह बहुत संभावना नहीं है कारण है कि, कम से कम किसी भी मुख्यधारा ओएस में।
एक धागा आमतौर पर चलाता है जब तक यह एक OS कॉल कि ब्लॉक कर देगा बनाता है, या जब तक व्यवधान होता है, या जब तक अपने समय टुकड़ा समाप्त हो रहा है (जो अंततः बस एक टाइमर बाधा है)। यहां तक कि यदि आप सावधानीपूर्वक चीजों का निर्माण कर सकते हैं ताकि दो धागे हमेशा एक निश्चित क्रम में अवरुद्ध हो जाएंगे, तो आपके बाद के दो प्रभाव होने पर ठीक से कोई नियंत्रण नहीं होगा। आपके आवेदन में धागे को निष्पादित करने के आदेश अंततः आपके आवेदन के बाहर की घटनाओं से प्रभावित होंगे।
आधुनिक ऑपरेटिंग सिस्टम का उपयोग क्या Preemtive multitasking के रूप में जाना जाता है। यह सिस्टम पर प्रत्येक प्रक्रिया को सीपीयू समय का एक टुकड़ा की गारंटी देता है, जिसमें प्रत्येक नियम को बाधित करने के लिए विभिन्न नियमों के साथ और अगली बारी है। यही कारण है कि आप अपने मशीन :)
यह यादृच्छिक नहीं है पर इस प्रक्रिया को प्रति एक सीपीयू की जरूरत नहीं है, लेकिन यह आम तौर पर अप्रत्याशित है।
अन्य प्रश्न तकनीकी जानकारी के साथ अच्छे अंक है, लेकिन:
सटीक होना, जावा में धागा शेड्यूलिंग काफी कुशलता से ताले, इंतजार द्वारा नियंत्रित किया जाता/सूचित/notifyAll, नींद तरीके और अन्य समवर्ती नियंत्रण। केवल आवेदन निष्पादन के दौरान उन समय, जब ये मौजूद नहीं हैं, विभिन्न धागे के निष्पादन आदेश को अनिर्धारित छोड़ दिया गया है।
मुख्य कारण शायद विभिन्न हार्डवेयर/ओएस सिस्टम में जावा की पोर्टेबिलिटी की आसानी के लिए है। यह केवल तार्किक है, कि यदि आप एक डेवलपर के रूप में आदेश निर्दिष्ट नहीं करते हैं जिसमें उपर्युक्त समवर्ती नियंत्रणों का उपयोग करके आपके ऐप में विभिन्न थ्रेड निष्पादित किए जाने चाहिए, तो आप इसकी परवाह नहीं करते हैं और इससे कोई फर्क नहीं पड़ता और मनमाना तरीका हो सकता है जेवीएम द्वारा चुना गया।
- 1. निष्पादन आदेश
- 2. बढ़ावा :: थ्रेड निष्पादन आदेश
- 3. न्यूटिट में निष्पादन का आदेश क्या है?
- 4. मैवेन प्लगइन निष्पादन के आदेश को बदलना
- 5. एएसपी.Net निष्पादन आदेश
- 6. hook_preprocess_node() निष्पादन आदेश
- 7. Drupal hook_cron निष्पादन आदेश
- 8. Parallel.ForEach आदेश दिया निष्पादन
- 9. एक्शन फ़िल्टर निष्पादन आदेश
- 10. ग्रैडल डूफर्स्ट() निष्पादन आदेश
- 11. सी # निर्माता निष्पादन आदेश
- 12. एसक्यूएल कथन को क्या योग्य बनाता है?
- 13. एचटीएमएल पार्स आदेश/स्क्रिप्ट निष्पादन आदेश
- 14. क्या म्यूटेक्स को अनलॉक करने का आदेश यहां एक अंतर बनाता है?
- 15. एफएस के जेएसएफ निष्पादन आदेश: घटना
- 16. जावास्क्रिप्ट ईवेंट हैंडलर्स निष्पादन आदेश
- 17. dispatch_async बनाम dispatch_sync निष्पादन आदेश
- 18. एएसपी.नेट एमवीसी: ValueProviders के निष्पादन का आदेश
- 19. वाईएक्स सेटप्रोपर्टी क्रियाओं के निष्पादन का आदेश
- 20. कठपुतली नोड्स.पीपी मॉड्यूल निष्पादन आदेश
- 21. सी ++ 11 में, थ्रेड का बिंदु क्या है जो "निष्पादन के धागे का प्रतिनिधित्व नहीं करता"?
- 22. बंडल निष्पादन रेक संपत्तियां: प्रीकंपाइल 'अप्रत्याशित टोकन'
- 23. इंस्टॉलर निष्पादन के आदेश को कैसे बल दें
- 24. मुख्य धागे पर कोड निष्पादन को मजबूर करना
- 25. क्यों एक साधारण टी-एसक्यूएल यूडीएफ फ़ंक्शन कोड निष्पादन को 3 गुना धीमा बनाता है
- 26. क्या टोमकैट प्रति उपयोगकर्ता धागा बनाता है?
- 27. यह आदेश prolog में एक स्टैक ओवरफ़्लो क्यों बनाता है?
- 28. लंबी निष्पादन धागे को सावधानी से कैसे रोकें?
- 29. एसक्यूएल सर्वर ट्रिगर्स - निष्पादन का आदेश
- 30. कर्नेल धागे और उपयोगकर्ता धागे के बीच क्या अंतर है?
सभी मौजूदा मुख्यधारा के JVMs पूरी तरह से ओएस पर शेड्यूलिंग छोड़ देते हैं। कुछ पुराने जेवीएम ने हरे धागे का इस्तेमाल किया, लेकिन उस स्थिति में * सभी * थ्रेड शेड्यूलिंग को JVM द्वारा प्रबंधित किया गया था। –
@ माइकलबोर्गवर्ड मुझे लगता है कि जावा 6 के लिए एससीजेपी पुस्तक को इस स्पष्टीकरण को शामिल करने की आवश्यकता है, उन्होंने किताब में पुरानी और नई जेवीएम की अंतर का जिक्र नहीं किया है! वैसे भी अद्यतन करने के लिए धन्यवाद – Zohaib