Быстрый и точный таймер повторения Python

Мне нужно отправлять повторяющиеся сообщения из списка быстро и точно. Один список должен отправлять сообщения каждые 100 мс с окном +/- 10 мс. Я попытался использовать приведенный ниже код, но проблема в том, что таймер ждет 100 мс, а затем необходимо выполнить все вычисления, чтобы таймер выпал из допустимого окна.

Простое уменьшение ожидания - грязный и ненадежный взлом. Существует блокировка вокруг цикла сообщений, если список редактируется во время цикла.

Мысли о том, как заставить Python отправлять сообщения последовательно около 100 мс? Спасибо

from threading import Timer
from threading import Lock

class RepeatingTimer(object):
    def __init__(self,interval, function, *args, **kwargs):
        super(RepeatingTimer, self).__init__()
        self.args = args
        self.kwargs = kwargs
        self.function = function
        self.interval = interval
        self.start()

    def start(self):
        self.callback()

    def stop(self):
        self.interval = False

    def callback(self):
        if self.interval:
            self.function(*self.args, **self.kwargs)
            Timer(self.interval, self.callback, ).start()

def loop(messageList):
    listLock.acquire()
    for m in messageList:
        writeFunction(m)
    listLock.release()


MESSAGE_LIST = [] #Imagine this is populated with the messages
listLock = Lock()
rt = RepeatingTimer(0.1,loop,MESSAGE_LIST)
#Do other stuff after this

Я понимаю, что функция writeFunction вызовет некоторую задержку, но не более 10 мс. По сути, мне нужно вызывать функцию каждые 100 мс для каждого сообщения. Список сообщений небольшой, обычно меньше, чем элементы.

Следующая задача - иметь эту работу каждые 10 мс, +/- 1 мс: P

Ответы на вопрос(3)

Ваш ответ на вопрос