Привет У меня есть вопрос относительно функции time.sleep()
в python 3. То, что я пытаюсь сделать, это периодически циклически перебирать список значений со скоростью 0,001 второй/точка. Он отлично работает с 0,01 или выше. Но при 0,001 или меньше, скорость сильно зависит от открытия или отключения других программ. Например, у меня есть список из 100 баллов и пробег с 0,001 секунды за точку. Тогда для его завершения потребуется приблизительно 100 * 0,001 = 0,1 секунды. Однако, когда я запускаю код, для завершения требуется более 1 секунды. Затем я включаю Google Chrome и открываю переполнение стека или веб-сайты quora, затем он работает с нужной скоростью около 0,11 секунды. Мне интересно, есть ли какие-либо решения для устранения этой проблемы или альтернативы time.sleep()
, на которые другие программы не будут затронуты. Вот мой код для тестирования time.sleep()
.python 3 time.sleep() замедляет работу или ускоряется другими программами
import time
from timeit import default_timer as timer
import threading
my_points = [1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60,
61,62,63,64,65,66,67,68,69,70,
71,72,73,74,75,76,77,78,79,80,
81,82,83,84,85,86,87,88,89,90,
91,92,93,94,95,96,97,98,99,100,]
def execute():
while True:
start = timer()
for i in my_points:
print (i, flush = True)
time.sleep(0.001) #Problem is here
end = timer()
print ("Total time run per cycle: ", end - start)
time.sleep(2) #To read the time
execute()
Какую проблему вы на самом деле пытаетесь решить здесь, которая требует точного сна ровно миллисекунды? – kindall
не точная миллисекунда. Я могу быть немного, но не в десять раз больше. Это то, о чем я беспокоюсь. –
Опять же, какую проблему вы пытаетесь решить с помощью этого подхода? Возможно, есть лучший способ сделать это в целом. – kindall