При подключении многопоточности перестали задаваться переменные

Делал бота, после подключил многопоточность

for event in longpoll.listen():
    x = threading.Thread(target=bot, args=(event, ))
    x.start()
    x.join()
def bot(event):
    if event.type == VkBotEventType.MESSAGE_NEW:
        peer_id = event.obj['peer_id']
        from_id = event.obj['from_id']
        user = UserConnect()
        ...

Сначала всё работало, но после подключения потоков перестали задаваться переменные

peer_id = event.obj['peer_id']
from_id = event.obj['from_id']
user = UserConnect()

Если проблему с peer_id и from_id можно избежать заменой на event.obj, передавая его в качестве аргумента, то с user оказалась проблема.

NameError: name 'user' is not defined

Пробовал вырезать код из bot, создать новую функцию и её вызывать в самом bot, но не помогло.


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

Автор решения: mlneko

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

→ Ссылка