- Функция sleep() в Python
- Пример 1: Как работает?
- Пример 2: Создает цифровые часы
- Многопоточность в Python
- Пример 3: Многопоточность
- time.sleep() в многопоточных программах
- Пример 4: В многопоточной программе
- Python Time.sleep Milliseconds
- Method 1: Time Sleep in Milliseconds
- Syntax of sleep() Function With Milliseconds:
- Method 2: Using Timer() From Threading Package
- Syntax of Timer() Method
- Conclusion
- About the author
- Abdul Mannan
- Функция time sleep() в Python
- Синтаксис
- Пример
- Различное время задержки сна
- Эффектная печать с использованием sleep()
- Метод при многопоточности
Функция sleep() в Python
Функция sleep() приостанавливает (ожидает) выполнение текущего потока на заданное количество секунд.
В Python есть модуль с именем time, который предоставляет несколько полезных функций для обработки задач, связанных со временем. Одна из популярных среди них — sleep().
Функция приостанавливает выполнение текущего потока на заданное количество секунд.
Пример 1: Как работает?
import time print("Printed immediately.") time.sleep(2.4) print("Printed after 2.4 seconds.")
Вот как работает эта программа:
- «Printed immediately» печатается.
- Приостанавливает (задерживает) выполнение на 2,4 секунды.
- Будет напечатано «Printed after 2.4 seconds.».
Как видно из приведенного выше примера, команда принимает в качестве аргумента число с плавающей запятой.
До Python 3.5 фактическое время приостановки могло быть меньше аргумента, указанного для функции time().
Начиная с Python 3.5, время приостановки будет не менее указанного в секундах.
Пример 2: Создает цифровые часы
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)
Многопоточность в Python
Прежде чем говорить о методе в многопоточных программах, давайте поговорим о процессах и потоках.
Компьютерная программа ‒ это набор инструкций. Процесс ‒ это выполнение этих инструкций. Поток ‒ это часть процесса. У процесса может быть один или несколько потоков.
Пример 3: Многопоточность
Все программы, указанные выше в этой статье, являются однопоточными. Вот пример многопоточной программы.
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 выполняются одновременно, и вы можете получить разные результаты.
time.sleep() в многопоточных программах
Функция приостанавливает выполнение текущего потока на заданное количество секунд.
В случае однопоточных программ метод приостанавливает выполнение потока и процесса. Однако в многопоточных программах функция приостанавливает поток, а не весь процесс.
Пример 4: В многопоточной программе
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 Milliseconds
The sleep() method in Python takes time to delay the execution of the program in the form of seconds. However, it can easily be made to work with milliseconds. To stop the execution of the program for some specific milli-seconds, then the user can pass the time in the sleep() function after dividing it by 1000 or multiplying it by 0.001.
This post will cover the methods to alter the program default execution flow and delay it by a set time in milliseconds.
Method 1: Time Sleep in Milliseconds
The “time” library provides a function “sleep()” that takes the delay interval in seconds, and the best part about this function is that it can take float values. This simply means that it allows the users to pass the time in milliseconds as well. But rather than calculating the value in floating point digits, it is much more convenient to simply take time as milliseconds and then either divide it by 1000 or multiply it by 0.001.
Syntax of sleep() Function With Milliseconds:
Let’s take an example to showcase this method. For this, start by importing the “time” library in your program using the following line:
After that, set the time interval in milliseconds:
print ( «The Program is reaching the sleep» )
Pass this time interval in the sleep() method using the following line:
In the end, after the sleep, prompt the user by printing the following:
The complete code snippet for this example is as follows:
print ( «The Program is reaching the sleep» )
time . sleep ( sleepIntervalMS/ 1000 )
print ( «This is the output after sleep» )
When this code is executed, it produces the following output on the terminal:
As you can notice in the GIF above, there is a slight delay of about 1.5 seconds or 1500 milliseconds in the execution of the program.
Method 2: Using Timer() From Threading Package
This is an alternate solution to the sleep() method of the time package. This timer() is used to execute a function after a set amount of time (usually in seconds) has elapsed. Look at the syntax of the Timer() method given below.
Syntax of Timer() Method
- timerVar is the variable that will be used to start the timer using the start() method.
- timeInterval will define the amount of time to be delayed before calling the function inside the second argument.
- functionToCall is the function that will be called after the delay.
Note: Since this post is concerned with sleeping the program for some specific milliseconds, the user can pass the time to Timer() method after dividing the time by 1000.
To demonstrate an example of working of this function, start by importing the Timer package from the threading library:
Once that is done, define the interval duration of the sleep in a variable:
Define a function that will be called using the Timer() method:
print ( «This function was executed after a delay» )
Call the Timer() method to set a timer on the function created above using the delay mentioned above as well:
Prompt the user that the program is about to go into sleep and call the start() method of the Timer variable:
print ( «The program is reaching the sleep» )
The complete code snippet for this example is given below:
from threading import Timer
print ( «This function was executed after a delay» )
timeVar = Timer ( delayMS/ 1000 , basicPrompt )
print ( «The program is reaching the sleep» )
When this program is executed, it produces the following results:
It can be seen in the output above that the function was executed after two and a half seconds or after 2500 milliseconds. That also concludes this post for sleep() in milliseconds.
Conclusion
The Python’s sleep() method from the time package can easily be made to delay the execution of the program for a set amount of time which is passed in the form of milliseconds. To do this, the user has to either multiply the milliseconds by “.001” or divide it by a thousand while passing it in the argument of the sleep method. Alternatively, the user can also use the Timer() method, which has also been demonstrated in this article.
About the author
Abdul Mannan
I am curious about technology and writing and exploring it is my passion. I am interested in learning new skills and improving my knowledge and I hold a bachelor’s degree in computer science.
Функция time sleep() в Python
В этом уроке мы узнаем о методе time sleep() в python. Функция используется для добавления задержки в выполнении программы. Мы можем использовать функцию sleep(), чтобы остановить выполнение программы на заданное время в секундах. Обратите внимание, что функция ожидания времени фактически останавливает выполнение только текущего потока, а не всей программы.
Синтаксис
sleep() – это метод модуля времени в Python. Итак, сначала мы должны импортировать модуль времени, затем мы можем использовать этот метод. Способ использования функции sleep():
Здесь аргумент метода sleep() t находится в секундах. Это означает, что когда выполняется инструкция time.sleep(t), следующая строка кода будет выполнена через t секунд. Смотрите следующий пример:
# importing time module import time print("Before the sleep statement") time.sleep(5) print("After the sleep statement")
Если вы запустите приведенный выше код, вы увидите, что вторая печать выполняется через 5 секунд. Таким образом, вы можете отложить свой код по мере необходимости.
Аргумент может иметь плавающее значение для более точной задержки. Например, вы хотите сделать задержку на 100 миллисекунд, что составляет 0,1 секунды, как показано ниже:
import time time.sleep(0.100)
Пример
Давайте посмотрим на следующий пример функции sleep в Python.
import time startTime = time.time() for i in range(0,5): print(i) # making delay for 1 second time.sleep(1) endTime = time.time() elapsedTime = endTime - startTime print("Elapsed Time = %s" % elapsedTime)
0 1 2 3 4 Elapsed Time = 5.059988975524902
Прошедшее время больше 5, потому что каждый раз в цикле for выполнение останавливается на 1 секунду. Дополнительное время связано со временем выполнения программы, планированием потоков операционной системы и т.д.
Различное время задержки сна
Иногда может потребоваться задержка на разные секунды. Сделать это можно следующим образом:
import time for i in [ .5, .1, 1, 2]: print("Waiting for %s" % i , end='') print(" seconds") time.sleep(i)
Waiting for 0.5 seconds Waiting for 0.1 seconds Waiting for 1 seconds Waiting for 2 seconds
Эффектная печать с использованием sleep()
Возможно, вам придется напечатать какое-нибудь сообщение необычным образом, вы можете сделать это так:
# importing time module import time message = "Hi. I am trying to create suspense" for i in message: # printing each character of the message print(i) time.sleep(0.3)
Если вы запустите приведенный выше код, вы увидите, что после печати каждого символа сообщения требуется некоторое время, что кажется эффектным.
Метод при многопоточности
Функция time sleep() – очень важный метод для многопоточности. Ниже приведен простой пример, показывающий, что функция ожидания времени останавливает выполнение текущего потока только при многопоточном программировании.
import time from threading import Thread class Worker(Thread): def run(self): for x in range(0, 11): print(x) time.sleep(1) class Waiter(Thread): def run(self): for x in range(100, 103): print(x) time.sleep(5) print("Staring Worker Thread") Worker().start() print("Starting Waiter Thread") Waiter().start() print("Done")
На изображении ниже показан результат, полученный в приведенном выше примере.