Как запустить Pygame с Threading?

Есть класс игры

class Game:
    def __init__(self):
        self.sc = pg.display.set_mode(WINDOW)
        self.clock = pg.time.Clock()

    def draw(self):
        pass

    def run(self):
        while True:
            self.sc.fill((0, 0, 0))

            self.draw()

            pg.display.flip()

            [exit() for i in pg. event.get() if i.type == pg.QUIT]
            pg.display.set_caption(str(int(self.clock.get_fps())))
            self.clock.tick(60)

И есть ещё одна функция для примера

def yep():
    while True:
        pass

При запуске первой функции

t1 = threading.Thread(target=yep)
t1.run()

Вторая работать не будет

game = Game()
t2 = threading.Thread(target=game.run)
t2.run()

Что делать? ;-;


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

Автор решения: Roman-Stop RU aggression in UA

Поток запускается методом start. Именно этот метод создаст новый поток и запустит в нем функцию run, а сама функция start закончит выполенение и выполенине продолжиться дальше.

В вашем случае вы вызываете run в текущем потоке.

Нужно делать так:

t1 = threading.Thread(target=yep)
t1.start()
→ Ссылка