Документация по Python. Теоретические материалы, и практические задачи

python time sleep

В прошлой статье про модуль времени, мы с вами немного коснулись функции time.sleep(). Данная функция приостанавливает на определенное пользователем время, текущий поток. Скорее всего я не ошибусь, если скажу, что данная функция является наиболее часто используемой в модуле time. Спектр применений этой функции довольно широкий, на примерах рассмотрим как все это работает.

Пример 1: Python sleep

                    
import time

print("Printed.")
time.sleep(2.4)
print("Печать после 2.4 сек.")

Разберем пример выше.

  • Печатается «Printed»
  • Приостанавливается выполнение программы на 2.4 секунды
  • Возобновляется работа программы

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

Пример 2: Python цифровые часы

Ниже мы рассмотрим код программы, которая создает цифровые часы.

                    
import time

while True:
  localtime = time.localtime()
  result = time.strftime("%I:%M:%S %p", localtime)
  print(result)
  time.sleep(1)

Результат:

02:10:50 PM
02:10:51 PM
02:10:52 PM
02:10:53 PM
02:10:54 PM
... .. ...

Что мы сделали в данной программе? Мы определили текущее время, и внутри бесконечного цикла while, каждую секунду печатаем время.

Пример 3: Многопоточность Python

Программы описанные выше, являются однопоточными. Ниже рассмотрим пример многопоточной программы в Python. Многопоточность для нас пока еще является новой темой, но в скором времени, мы научимся создавать многопjточные приложения.

Для работы многопоточности, нам необходимо использовать, модуль threading

                    

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(). Обращаю ваше внимание на то, что данные потоки в этой программе запускаются одновременно, и результат у вас может быть разным.

С помощью функции time.sleep() вы можете останавливать работу одного потока на нужное количество времени. В приведенном ниже примере рассмотрим использование time.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 и 0.7 секунд соответственно.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *