Функцията sleep () спира (изчаква) изпълнението на текущата нишка за определен брой секунди.
Python има модул с име time, който предоставя няколко полезни функции за обработка на свързани с времето задачи. Една от популярните функции сред тях е sleep()
.
В sleep()
изпълнение на функцията спира на текущата нишка за определен брой секунди.
Пример 1: Сън на Python ()
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Ето как работи тази програма:
"Printed immediately"
се отпечатва- Спира (забавя) изпълнението за 2,4 секунди.
"Printed after 2.4 seconds"
се отпечатва.
Както можете да видите от горния пример, sleep()
приема число с плаваща запетая като аргумент.
Преди Python 3.5 действителното време на спиране може да е по-малко от аргумента, посочен за time()
функцията.
От Python 3.5 времето за спиране ще бъде поне посочените секунди.
Пример 2: Python създава цифров часовник
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result) time.sleep(1)
В горната програма изчислихме и отпечатахме текущото местно време в безкрайния цикъл while. След това програмата изчаква 1 секунда. Отново се изчислява и отпечатва текущото местно време. Този процес продължава.
Когато стартирате програмата, изходът ще бъде нещо като:
14:10:50 14:10:51 14:10:52 14:10:53 14:10:54 …
Ето малко модифицирана по-добра версия на горната програма.
import time while True: localtime = time.localtime() result = time.strftime("%I:%M:%S %p", localtime) print(result, end="", flush=True) print("", end="", flush=True) time.sleep(1)
За да научите повече, посетете цифров часовник в обвивката на Python.
Многопоточност в Python
Преди да говорим за sleep()
многонишкови програми, нека поговорим за процеси и нишки.
Компютърната програма е сбор от инструкции. Процесът е изпълнението на тези инструкции.
Нишката е подмножество на процеса. Процесът може да има една или повече нишки.
Пример 3: Многопоточност на Python
Всички програми по-горе в тази статия са еднонишкови програми. Ето пример за многонишкова програма на Python.
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()
Когато стартирате програмата, изходът ще бъде нещо като:
Здравей Здравей Здравей Здравей Здравей
Горната програма има две нишки t1 и t2. Тези теми се управляват с помощта t1.start()
и t2.start()
отчети.
Имайте предвид, че t1 и t2 се изпълняват едновременно и може да получите различни резултати.
Посетете тази страница, за да научите повече за Multithreading в Python.
time.sleep () в многонишкови програми
В sleep()
изпълнение на функцията спира на текущата нишка за определен брой секунди.
В случай на еднонишкови програми sleep()
спира изпълнението на нишката и процеса. Функцията обаче спира поток, а не целия процес в многонишкови програми.
Пример 4: 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 секунди.
Препоръчително четене: Python time.sleep () спи нишка