Метод time.sleep() в Python

Метод python sleep(), используемый для приостановки выполнения для заданного времени (в секундах). Мы можем использовать функцию ожидания python, чтобы остановить выполнение программы за заданное время в секундах. Фактическое время приостановки может быть меньше запрошенного, потому что любой пойманный сигнал прекратит сон() после выполнения ловушки этого сигнала. Кроме того, время приостановки может быть больше, чем запрашивается произвольной суммой из-за планирования другой активности в системе. Вы можете установить задержку в своем скрипте Python, передав количество секунд, которые вы хотите отложить, к функции сна.

import time
time.sleep(5) #задержка в течение 5 секунд

Когда вы запустите приведенный выше Пример:, он завершится только через пять секунд.

Метод sleep() поддерживает числа с плавающей запятой, что означает, что вы можете заставить его также ждать доли секунды.

import time
time.sleep(1.500)

Когда вы запускаете приведенный выше Пример:, программа ждет завершения 1 секунды и 500 миллисекунд.

time.sleep (1) # sleep в течение 1 секунды
time.sleep (60) # сон в течение 1 минуты
time.sleep (3600) # сон в течение 1 часа

Задержка времени для бесконечного цикла

Вот еще один пример когда что-то выполняется примерно каждые 5 секунд.

import time
while True:
print("Thi smessage prints each 5 seconds")
time.sleep(5) # Задержка в течение 5 секунд

Вышеупомянутая программа запускает бесконечный цикл, поэтому вы должны принудительно остановить программу, когда захотите.

Сон программы

Следующая программа представляет собой пример обратного отсчета, используя метод ожидания, чтобы подождать 1 секунду каждого номера.

import time
wait = 10
while wait > 0:
print(wait)
time.sleep(1)
wait = wait - 1

Thread и Sleep

Темы, как правило, содержатся в процессах. В рамках одного процесса может существовать более одного потока. Эти потоки разделяют память и состояние процесса. В следующем примере вы можете увидеть, как метод sleep() работает в многопроцессорной программе.

import time
from threading import Thread
class Main_Thread(Thread):
def run(self):
for x in range(100, 104):
print(x, " - Main Thread")
time.sleep(5)
class Service_Thread(Thread):
def run(self):
for x in range(1, 16):
print(x)
time.sleep(1)
Main_Thread().start()
Service_Thread().start()

Вывод:

100 - Main Thread
1
2
3
4
5
101 - Main Thread
6
7
8
9
10
102 - Main Thread
11
12
13
14
15
103 - Main Thread

Точность time.sleep()

Time.sleep (секунды) не в реальном времени. Функция time.sleep() использует функцию sleep() базовой операционной системы, иногда она может быть отключена с точки зрения миллисекунд. Большинство ПК-машин имеют аппаратные ограничения в диапазоне 1-10 мс, независимо от операционной системы. В операционной системе time.sleep() просто означает подсказку. Это не хороший механизм синхронизации, но достаточно хорош для большинства приложений. Как правило, однако, если вы не хотите спать в течение очень небольшого периода времени, вы можете вообще игнорировать эту информацию.

import time
sleep_start = time.time()
for cnt in range(0,10):
print(cnt)
time.sleep(1) # 1 sec delay
sleep_end = time.time()
diff = sleep_end - sleep_start
print("Looping time :",diff)

Вывод:

Looping time : 10.040287017822266

 

 

Источник: net-informations.com

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 оценок, среднее: 3,67 из 5)
Adblock
detector