Функція sleep () призупиняє (чекає) виконання поточного потоку на задану кількість секунд.
Python має модуль з іменем time, який надає кілька корисних функцій для обробки завдань, пов'язаних з часом. Однією з популярних функцій серед них є sleep()
.
У sleep()
Function призупиняє виконання поточного потоку для заданого кількості секунд.
Приклад 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()
and 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 () спить нитку