नहीं, यह सीपीयू गहन नहीं है।
The documentation का कहना है:
सेकंड की दी गई संख्या के लिए निष्पादन को निलंबित करें।
पायथन वास्तव में गारंटी नहीं दे सकता कि हर संभव कार्यान्वयन में, इसका मतलब है कि ओएस नींद के दौरान आपकी प्रक्रिया को कभी भी निर्धारित नहीं करेगा। लेकिन प्रत्येक प्लेटफॉर्म पर, पायथन किसी भी CPU का उपयोग किए बिना निर्दिष्ट समय के लिए ब्लॉक करने के लिए कुछ उचित करने की कोशिश करता है। कुछ प्लेटफार्मों पर, इसका अभी भी कुछ सीपीयू का मतलब हो सकता है, लेकिन यह काफी संभव है जितना संभव हो।
विशेष रूप से, जब से तुम linux के बारे में पूछा, और शायद CPython:
linux पर, और अधिकांश अन्य POSIX प्लेटफार्मों, यह आम तौर पर select
का प्रयोग करेंगे। the 3.3 source देखें।
man page यह स्पष्ट करता है कि select
सिग्नल, टाइमआउट या तैयार आई/ओ तक निलंबित करता है (और इस मामले में, कोई एफडीएस नहीं है, इसलिए बाद वाला असंभव है)।
आप पूर्ण विवरण के लिए कर्नेल स्रोत पढ़ सकते हैं, लेकिन मूल रूप से, जब तक कि कोई अप्रत्याशित सिग्नल न हो, तो आपको select
की शुरुआत में संभवतः कताई की एक छोटी राशि को छोड़कर, बिल्कुल निर्धारित नहीं किया जाएगा (जैसा कि उन मामलों के लिए अनुकूलन जहां select
लगभग तुरंत लौट सकते हैं)।
अपने सारांश के बीच में, से सवाल परिवर्तन करने के लिए "sleep
CPU- सघन है" "मैं sleep
, या एक क्रॉन जॉब इस्तेमाल करना चाहिए?"
किसी भी तरह से, आप प्रतीक्षा करते समय किसी भी CPU को जला नहीं रहे हैं। कुछ पेशेवर और विपक्ष हैं, लेकिन उनमें से अधिकांश तुच्छ हैं। से (मोटे तौर पर, और व्यक्तिपरक) सबसे कम से कम, एक क्रॉन नौकरी:
- कॉन्फ़िगरेशन-इत्यादि की अनुमति देता है, शेड्यूल को बदलकर-स्रोत कोड संपादित किए बिना।
- को कार्य करने के लिए कॉन्फ़िगरेशन की आवश्यकता है।
- का अर्थ है कम कोड-अर्थात् कम बग, और भविष्य के पाठकों को समझने के लिए कम।
- सिस्टम शटडाउन में जारी रहेगा।
- फिर भी आग लग जाएगा भले ही आपकी स्क्रिप्ट अपवाद या सिग्नल से निकलती हो।
- या तो 0, 1 या एन बार आग लग सकता है यदि इसकी निर्धारित अंतराल एन गुना (यह निर्दिष्ट नहीं है, और विभिन्न क्रॉन कार्यान्वयन अलग-अलग चीजें करते हैं) की गारंटी देता है।
- में हैंडलिंग का एक बेहतर मौका है सिस्टम घड़ी में परिवर्तन।
- प्रक्रिया लॉन्च, दुभाषिया स्टार्टअप इत्यादि के लिए प्रत्येक बार आग लगने के लिए भुगतान करना पड़ता है।
- पृष्ठ तालिका और प्रक्रिया तालिका स्थान को बर्बाद नहीं करता है, क्योंकि कोई प्रक्रिया चल रही नहीं है और कोई मेमोरी मैप नहीं है।
शीर्षक और प्रश्न असंबंधित हैं? – Serdalis
@ सेरडलिस: वे एक ही प्रश्न नहीं हैं, लेकिन वे निश्चित रूप से संबंधित हैं। यदि 'नींद' व्यस्त-प्रतीक्षा करता है, तो वह उस व्यक्ति के सवाल को सुलझता है जिसका उपयोग करने के लिए ("नींद नहीं" के पक्ष में); यदि ऐसा नहीं होता है, तो यह सवाल खुलता है। (बेशक, जैसा कि यह निकलता है, यह नहीं करता है।) – abarnert