के रूप में वर्तमान में तुरंत राज्य सो में धागा निष्पादित करते समय यह कॉल [sleep][1]();
तो चलता रहता है थ्रेड का सामना करना पड़ता है, जहां runnable राज्य/तैयार राज्य में [yield][2]();
धागा चाल के लिए के रूप मेंनींद विधि और बहु थ्रेडिंग की उपज विधि के बीच क्या अंतर है?
उत्तर
sleep()
थ्रेड निश्चित रूप से किसी निश्चित समय के लिए निष्पादन को रोकने का कारण बनता है; यदि कोई अन्य थ्रेड या प्रक्रिया चलाने की आवश्यकता नहीं है, तो CPU निष्क्रिय होगा (और शायद पावर सेविंग मोड दर्ज करें)।
yield()
मूल रूप से इसका मतलब है कि धागा विशेष रूप से महत्वपूर्ण नहीं कर रहा है और यदि किसी अन्य धागे या प्रक्रियाओं को चलाने की आवश्यकता है, तो उन्हें चाहिए। अन्यथा, वर्तमान धागा चलना जारी रहेगा।
हम 3 से किसी भी विधि का उपयोग करके निष्पादन से एक धागा रोका जा सकता है
yield()
join()
sleep()
: थ्रेड वर्ग के
yield()
विधि निष्पादित करने के लिए एक ही प्राथमिकता के शेष धागे इंतजार कर के लिए एक मौका देने के लिए अस्थायी रूप से वर्तमान में क्रियान्वित धागा रुक जाता है। यदि कोई प्रतीक्षा धागा नहीं है या सभी प्रतीक्षा धागे की प्राथमिकता कम है तो वही धागा इसके निष्पादन को जारी रखेगा। उपजित थ्रेड जब इसे निष्पादन का मौका मिलेगा तो थ्रेड शेड्यूलर द्वारा तय किया जाता है जिसका व्यवहार विक्रेता निर्भर होता है।join()
यदि कोई निष्पादन थ्रेड टी 1join()
पर t2 i.e पर कॉल करता है;t2.join()
तुरंत टी 1 प्रतीक्षा स्थिति में प्रवेश करेगा जब तक कि टी 2 इसके निष्पादन को पूरा नहीं करता है।sleep()
हमारी आवश्यकता के आधार पर हम एक निश्चित अवधि के लिए सोने की नींद में रहने के लिए धागे बना सकते हैं (उम्मीद है कि हमारी पसंदीदा विधि के लिए ज्यादा स्पष्टीकरण आवश्यक नहीं है)।
नींद जबकि उपज धागा निलंबित कर देता है x मिलीसेकंड के लिए खुद को निलंबित करने के लिए धागा का कारण बनता है और तुरंत तैयार कतार (कतार जो सीपीयू धागे को चलाने के लिए उपयोग करता है) करने के लिए इसे ले जाता है।
नींद() थ्रेड को निश्चित रूप से किसी निश्चित समय के लिए निष्पादन को रोकने का कारण बनता है; यदि कोई अन्य थ्रेड या प्रक्रिया चलाने की आवश्यकता नहीं है, तो CPU निष्क्रिय होगा (और शायद पावर सेविंग मोड दर्ज करें)। उपज() मूल रूप से इसका मतलब है कि धागा विशेष रूप से महत्वपूर्ण नहीं कर रहा है और यदि किसी अन्य धागे या प्रक्रियाओं को चलाने की आवश्यकता है, तो उन्हें चाहिए। अन्यथा, वर्तमान धागा चलना जारी रहेगा।
देखें http://preciselyconcise.com/java/concurrency/b_sleep.php
यील्ड: वर्तमान में क्रियान्वित धागा और धागा जो उपज का आह्वान किया है() धागा निष्पादन के अंत में जुड़ जाएगा के लिए इंतजार करना धागा कर देगा। धागा जो उपज() को कॉल करता है, उसकी बारी तक अवरुद्ध राज्य में होगा।
नींद: तर्कों में उल्लिखित समय के लिए धागे नींद मोड में सोएगा।
शामिल हों: टी 1 और टी 2 दो धागे हैं, t2.join() को तब टी 1 कहा जाता है जब तक टी 2 निष्पादन पूरा नहीं करता है। फिर टी 1 रनने योग्य राज्य में होगा तो हमारे विशेषज्ञ जेवीएम थ्रेड शेड्यूलर मानदंडों के आधार पर टी 1 उठाएंगे।
यील्ड: शेड्यूलर के लिए यह एक संकेत (गारेंटेड नहीं है) है कि आपने पर्याप्त किया है और उसी प्राथमिकता के कुछ अन्य धागे चल सकते हैं और CPU का उपयोग कर सकते हैं।
थ्रेड.sleep();
नींद: यह किसी विशेष समय के लिए उस विशेष धागे के निष्पादन को अवरुद्ध करता है।
TimeUnit.MILLISECONDS.sleep (1000);
- 1. एकाधिक प्रेषण और विधि अधिभार के बीच क्या अंतर है?
- 2. NavigationService.Navigate() विधि और PhoneApplicationFrame.Source प्रॉपर्टी के बीच क्या अंतर है?
- 3. प्रतिनिधि उदाहरण और विधि सूचक के बीच क्या अंतर है?
- 4. विधि ओवरलोडिंग और ओवरराइडिंग के बीच क्या अंतर है?
- 5. क्या सिंक्रनाइज़ (यह) और सिंक्रनाइज़ विधि के बीच अंतर है
- 6. विधि और चयनकर्ता के बीच क्या अंतर है?
- 7. एसिंक प्रतिनिधि और एसिंक विधि के बीच क्या अंतर है?
- 8. जावा में, this.method() और विधि() के बीच क्या अंतर है?
- 9. विधि और फ़ंक्शन के बीच क्या अंतर है?
- 10. ejs में लेआउट `उपज` विधि क्या है?
- 11. नींद(), नींद() और [एनएसटीएचएड नींद फॉरटाइम इंटरवल:] के बीच क्या अंतर है?
- 12. विधि उपज वापसी
- 13. पृष्ठभूमिवर्कर और सिस्टम के बीच अंतर। थ्रेडिंग।
- 14. एक स्थिर संरचना विधि और स्थैतिक वर्ग विधि के बीच क्या अंतर है?
- 15. पायथन में स्ट्रिंग विधि और स्ट्र विधि के बीच क्या अंतर है?
- 16. विंडोज थ्रेडिंग रुको विधि
- 17. बहु-थ्रेडिंग
- 18. लेनदेनस्कोप और बहु-थ्रेडिंग
- 19. Thread.Sleep (टाइमआउट) और ManualResetEvent.Wait (टाइमआउट) के बीच क्या अंतर है?
- 20. सी ++: एनवीआई और टेम्पलेट विधि पैटर्न के बीच अंतर?
- 21. Node.js, बहु-थ्रेडिंग और सॉकेट.io
- 22. बहु-किरायेदारी और बहु-उपयोगकर्ता समाधानों के बीच क्या अंतर है?
- 23. सी ++ में, एक विधि है और एक समारोह के बीच क्या अंतर है
- 24. 2 सी # प्रक्रियाओं के बीच अंतर-प्रक्रिया संचार की सबसे सरल विधि क्या है?
- 25. सी #: क्या SomeEvent + = विधि और SomeEvent + = नए प्रतिनिधि (विधि)
- 26. अंडरस्कोर जेएस _.each विधि और _.invoke विधि
- 27. पैटर्न रणनीति, आगंतुक और टेम्पलेट विधि के बीच क्या अंतर है?
- 28. .NET थ्रेडिंग मॉडल और एप्लिकेशन। डॉवेट्स बनाम थ्रेड। नींद
- 29. सी बहु-थ्रेडिंग उत्पत्ति
- 30. एएसपीनेट वेब विधि और एक डब्ल्यूसीएफ सेवा के बीच क्या अंतर है?
उनके जावडोक क्या कहते हैं? –
अंगूठे का नियम: 1) कभी भी 'उपज() 'का उपयोग न करें; 2) केवल 'नींद()' का उपयोग करें जब कार्यक्रम * स्पष्ट रूप से * निर्दिष्ट समय के लिए प्रतीक्षा करने के लिए आवश्यक है (यदि आपको केवल "थोड़ा इंतजार करना" की आवश्यकता है, तो सबसे अधिक संभावना है कि आप इसे गलत कर रहे हैं और आपको आवश्यकता है उचित प्रतीक्षा/सिग्नलिंग तंत्र को लागू करने के लिए)। –