English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تقوم وظيفة sleep() بتعليق (الانتظار) تنفيذ النواة الحالية لمدة ثوانٍ معينة.
يوجد في Python وحدة تُدعىtimeالوحدة، التي توفر بعض الوظائف المفيدة لمعالجة المهام المتعلقة بالوقت.
توقف وظيفة sleep() تنفيذ الخيط الحالي لعدد الثواني المحددة.
import time print("الطباعة فورًا") time.sleep(2.4) print("2.4 ثانية بعد الطباعة")
يعمل هذا البرنامج كما يلي:
تم الإخراج "الطباعة فورًا"
التوقف (التأخير) لمدة 2.4 ثانية.
الإخراج "2.4 ثانية بعد الطباعة".
من خلال مثال أعلاه، يمكن رؤية أن sleep() يستخدم عددًا عشريًا كمعامل.
قبل إصدار Python 3.5، قد يكون وقت التوقف الفعلي أقل من المعامل المحدد لـ time() وظيفة.
من إصدار Python 3.5، سيكون وقت التوقف على الأقل ثانية واحدة كما تم تحديده.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S \p", localtime) print(result) time.sleep(1)
في البرنامج المذكور أعلاه، قمنا بحساب وتحديد اللا محدودةدائرة whileوقت المحلية الحالي الحالي في الداخل. ثم، ينتظر البرنامج ثانية واحدة. بنفس الطريقة، سيتم حساب وتحديد الوقت المحلي الحالي. هذه العملية تستمر.
عند تشغيل البرنامج، الناتج سيكون مشابهًا لـ:
02:10:50 PM 02:10:51 PM 02:10:52 PM 02:10:53 PM 02:10:54 PM ... .. ...
هذه نسخة أفضل قليلاً من البرنامج المذكور أعلاه.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S \p", localtime) print(result, end="", flush=True) print("\r", end="", flush=True) time.sleep(1)
قبل مناقشة برنامج المتسلسل المتعدد sleep()، دعونا نتحدث عن العمليات والنواة.
برنامج الحاسوب هو مجموعة من الأوامر. العمليات هي تنفيذ هذه الأوامر.
النواة هي مجموعة من العمليات. يمكن للعمليات أن تحتوي على نواة واحدة أو أكثر.
جميع البرامج المذكورة في هذا المقال هي برامج متسلسلة. هذا مثال على برنامج بايثون متعدد الخيوط.
import threading def print_hello_three_times(): for i in range(3): print("Hello") def print_hi_three_times(): for i in range(3): print("Hi") t1 = threading.Thread(target=print_hello_three_times) t2 = threading.Thread(target=print_hi_three_times) t1.start() t2.start()
عند تشغيل البرنامج، الناتج سيكون مشابهًا لـ:
Hello Hello Hi Hello Hi Hi
البرنامج المذكور أعلاه يحتوي على اثنين من الخيوطt1وt2.هذه الخيوط يتم تشغيلها باستخدام جمل t1.start() و t2.start().
لاحظ،t1وt2عندما يتم تشغيلها معًا، قد تحصل على نتائج مختلفة.
توقف وظيفة sleep() تنفيذ الخيط الحالي لعدد الثواني المحددة.
إذا كان البرنامج متسلسلاً، فإن sleep() سيتوقف تنفيذ الخيط والعمليات. ولكن، لا توقف هذه الوظيفة العمليات بأكملها في برنامج متعدد الخيوط، بل توقف فقط الخيط.
import threading import time def print_hello(): for i in range(4): time.sleep(0.5) print("Hello") def print_hi(): for i in range(4): time.sleep(0.7) print("Hi") t1 = threading.Thread(target=print_hello) t2 = threading.Thread(target=print_hi) t1.start() t2.start()
البرنامج المذكور أعلاه يحتوي على اثنين من الخيوط. لقد استخدمنا هاتين الخيوط time.sleep(0.5) وtime.sleep(0.75) حيث يختلف وقت التوقف بينهما 0.5 ثانية و 0.7 ثانية.