Thread.sleep() एक स्थिर तरीका है। Thread.sleep()
पर कॉल करने और Thread.currentThread().sleep()
पर कॉल करने के बीच कोई अंतर नहीं है। हालांकि, यदि आप ग्रहण का उपयोग करते हैं, तो बाद के रूप में आपको एक चेतावनी संदेश देना चाहिए क्योंकि आप स्थैतिक विधि नींद() को गैर-स्थैतिक तरीके से एक्सेस कर रहे हैं।
TimeUnit.sleep() Thread.sleep() के लिए एक शानदार विकल्प है। मैं व्यक्तिगत रूप से इसे पसंद करते हैं क्योंकि ज्यादातर मामलों में मैं पूरी सेकंड के लिए सोना चाहता हूँ और मैं आसानी से और स्पष्ट रूप से के रूप में करने का विरोध किया TimeUnit.SECONDS.sleep(5)
साथ ऐसा कर सकते Thread.sleep(5*1000)
या Thread.sleep(5000)
संपादित करें: वहाँ अभी तक एक और विकल्प है, लेकिन यह नहीं है सभी एक वांछनीय विकल्प। कॉलिंग Object.wait() थ्रेड.sleep() के समान फ़ंक्शन में निष्पादन रोक देगा। हालांकि, ऐसा करने के लिए यह अचूक है क्योंकि पहले आपको synchronize(Object)
का उपयोग करना होगा और यह विधि थ्रेड सिंक्रनाइज़ेशन को प्रतीक्षा/सूचित करने के लिए है। साथ ही, इस बात की कोई गारंटी नहीं है कि थ्रेड ऑब्जेक्ट.वाइट() से नकली वेक-अप के रूप में निर्दिष्ट पूर्ण समय के लिए प्रतीक्षा करेगा JVM कार्यान्वयन के लिए स्वीकार्य है।
स्रोत
2010-07-24 23:47:51
यह प्रश्न http://stackoverflow.com/questions/2077216/java-thread-currentthread-sleepx-vs-thread-sleepx के बहुत करीब है कि एक लापरवाही plagarist सिर्फ जवाब के रूप में स्वीकार किए गए जवाब काट और चिपका इस सवाल के लिए। –
@ स्टीफन सी शायद यह कोई और है जो अनावश्यक प्रश्न पूछने के लिए लापरवाह है? –
@ डेव - @ जैज़ ने केवल 2 प्रश्न पूछे हैं, और दूसरा अनावश्यक नहीं था। इसके अलावा, हर कोई जानता है कि चोरीवाद धोखा दे रहा है। बच्चों को प्राथमिक विद्यालय में पढ़ाया जाता है, और जो भी विश्वविद्यालय जाता है वह यह जानने में असफल रहा कि यह एक बड़ा नोनो है। –