2010-07-01 9 views
16

क्या कोई शरीर मुझे समझा सकता है कि नींद(), नींद() & [एनएसटीएचएड नींदफॉरटाइम इंटरवल:] के बीच क्या अंतर है?नींद(), नींद() और [एनएसटीएचएड नींद फॉरटाइम इंटरवल:] के बीच क्या अंतर है?

इन विधियों का उपयोग करने के लिए सबसे अच्छी स्थिति क्या है?

उत्तर

24

नींद (3) एक पॉज़िक्स मानक लाइब्रेरी विधि है जो सेकंड में निर्दिष्ट समय की मात्रा के लिए कॉलिंग थ्रेड को निलंबित करने का प्रयास करती है। नींद (3) वही करता है, सिवाय इसके कि इसमें माइक्रोसॉन्ड में समय लगता है। दोनों वास्तव में नैनोस्लीप (2) सिस्टम कॉल के साथ लागू होते हैं।

अंतिम विधि एक ही चीज करता है सिवाय इसके कि यह सी लाइब्रेरी कॉल होने के बजाय फाउंडेशन फ्रेमवर्क का हिस्सा है। यह एक एनएसटीइम इंटरवलवल लेता है जो एक डबल इंगित सेकंड और दूसरे के अंशों के रूप में सोने के लिए समय की मात्रा का प्रतिनिधित्व करता है।

सभी उद्देश्यों और उद्देश्यों के लिए, वे सभी एक ही काम करते हैं, यानी, निर्दिष्ट समय के लिए कॉलिंग थ्रेड को निलंबित करने का प्रयास करते हैं।

19

इन विधियों का उपयोग करने के लिए सबसे अच्छी स्थिति क्या है?

कभी

या, वास्तव में, काफी लगभग विश्वासपूर्वक कभी परिस्थितियों की सबसे अनोखी के बाहर।

आप क्या करने की कोशिश कर रहे हैं?

+9

लेकिन बिल, मुझे लगता है कि यहां कुछ नैनोसेकंड्स के लिए सो रहा है और मेरे सभी निष्पादन योग्य EXC_BAD_ACCESS क्रैश को साफ़ करता है! –

+7

हे।मैं समय क्रिंग करता हूं मुझे कोड दिखाई देता है जो "थ्रेड सिंक्रनाइज़ेशन" उद्देश्यों के लिए 'usleep() 'का उपयोग करता है। मेरी क्रिंग मांसपेशियों को दुख की बात है। – bbum

+1

मुझे पता है कि आपका क्या मतलब है। इस मामले में, मैं क्रिंग के बजाए मुस्कुराहट की मांसपेशियों का अभ्यास करने की उम्मीद कर रहा था :) –

3

अधिकांश ओएस पर, नींद (0) और इसके रूपों का उपयोग मतदान की स्थिति में दक्षता में सुधार के लिए किया जा सकता है ताकि अन्य थ्रेडों को काम करने का मौका दिया जा सके जब तक थ्रेड शेड्यूलर मतदान थ्रेड को उठाने का फैसला नहीं करता। लूप के दौरान यह एक पूर्ण-ऑन धड़कता है। मुझे यद्यपि गैर-शून्य टाइमआउट के लिए अधिक उपयोग नहीं मिला है, और विशेष रूप से सेब ने एक घटना संचालित आर्किटेक्चर बनाने का एक बहुत अच्छा काम किया है, जो कि ज्यादातर स्थितियों में मतदान की आवश्यकता को खत्म कर देना चाहिए।

-1

- उदाहरण नींद के उपयोग निम्न स्थिति में है:

नेटवर्क सिमुलेशन परिदृश्य में, हम आम तौर पर घटनाओं है कि घटना से घटना क्रियान्वित कर रहे हैं, एक अनुसूचक का उपयोग कर सकते है। शेड्यूलर व्यवस्थित फैशन में घटनाओं को निष्पादित करता है। जब कोई ईवेंट निष्पादित हो जाता है, और शेड्यूलर अगले ईवेंट पर जाता है, तो शेड्यूलर मशीन ईवेंट के साथ अगले ईवेंट निष्पादन समय की तुलना करता है। यदि अगली घटना भविष्य के समय के लिए निर्धारित की जाती है, तो सिम्युलेटर तब तक सो जाता है जब तक कि वास्तविक समय तक नहीं पहुंच जाता है और फिर अगली घटना निष्पादित करता है।

-से linux मैन पृष्ठों:

usleep() समारोह (कम से कम) usec माइक्रोसेकंड के लिए बुला धागे के निष्पादन निलंबित करता है। नींद को किसी भी सिस्टम गतिविधि द्वारा या कॉल को संसाधित करने के समय या सिस्टम टाइमर की ग्रैन्युलरिटी द्वारा थोड़ी देर तक बढ़ाया जा सकता है। जबकि नींद कुछ समय के लिए किसी कार्य के निष्पादन में देरी हो रही है (धागा या कुछ भी हो सकता है)। कार्यों के बारे में अधिक जानकारी के लिए 1 और 2 पर जाएं।

संबंधित मुद्दे