Функция за сън на Python () (с примери)

Функцията 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 () спи нишка

Интересни статии...