Функция sleep () приостанавливает (ожидает) выполнение текущего потока на заданное количество секунд.
В Python есть модуль с именем time, который предоставляет несколько полезных функций для обработки задач, связанных со временем. Среди них одна из популярных функций sleep()
.
В sleep()
Function приостанавливает выполнение текущего потока для заданного количества секунд.
Пример 1: Python sleep ()
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 выполняются одновременно, и вы можете получить разные результаты.
Посетите эту страницу, чтобы узнать больше о многопоточности в Python.
time.sleep () в многопоточных программах
В sleep()
Function приостанавливает выполнение текущего потока для заданного количества секунд.
В случае однопоточных программ 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 () спит поток