English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
функция sleep() приостанавливает (ожидалась) выполнение текущего потока в течение указанного числа секунд.
Python имеет модульtimeмодуль, который предоставляет некоторые полезные функции для выполнения задач, связанных с временем. Одна из常用的 функций - sleep().
Функция sleep() приостанавливает выполнение текущего потока на указанное количество секунд.
import time print("Immediate print") time.sleep(2.4) print("Печатать через 2.4 секунды")
Работа программы выглядит следующим образом:
"Immediate print" выводится
Пауза (задержка) выполнения через 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-циклвнутреннее текущее местное время . Затем программа ждет 1 секунду. Таким же образом, будет вычисляться и打印иться текущее местное время. Этот процесс продолжается.
Когда вы запустите программу, вывод будет похож на:
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(), давайте поговорим о процессах и потоках.
Компьютерная программа - это набор инструкций. Процесс - это выполнение этих инструкций.
Треды являются подмножеством процесса. Процесс может иметь один или несколько потоков.
Все программы, приведенные выше, являются однопоточными программами. Это пример многониточной программы 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()
Когда вы запустите программу, вывод будет похож на:
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 секунды.