Бесконечная проверка по верх других функций

Можно как-то сделать функцию, которая будет проверять бесконечно, например переменою, но чтобы она работала поверх других. Я думал цикл.

while True:
    if a == 5:
       print('бла-бла')

Но он будет бесконечно проверять, а другие операции не будут работать пока не будет a = 5. Помогите с решениям.


Ответы (1 шт):

Автор решения: Евгений

Более подробно о работе с потоками можно почитать тут
Пример выполнения функции в отдельном потоке:

from threading import Thread

class MyThread(Thread):
    def __init__(self, name, f):
        """Инициализация потока"""
        Thread.__init__(self)
        self.name = name
        self.f = f

    # в данном случае при запуске потока он воспроизводит не конкретный набор действий, а вызов переданной функции
    def run(self):
        self.f()
        # можно было просто на этом месте задать бесконечный цикл, но обобщённое решение всё-таки предпочтительнее

# то, что нужно делать в этом потоке
def todo():
    a = 5
    while True:
        if a == 5:
            print('бла-бла')

# создаём поток, передаём ему функцию todo и запускаем его
MyThread('Название потока', todo).start()

# для проверки параллельно запускаем второй бесконечный цикл уже в главном потоке. Увидим, что оба потока работают
while True:
    print('test')
→ Ссылка