Мне нужно запустить поток в фоновом режиме, но результат, похоже, следует за потоком, а не вставляется в main. У меня есть что-то вроде этого:потоки python, многопоточность с threading.thread
import threading
def work()
while True:
do stuff
def recieve()
while True:
await instruction
#main
recieve()
if instruction == "do work"
threading.Thread(target=work()).start()
У меня есть много других инструкций, которые получают полученное для и решать последовательно, но как работа() занимает много времени, чтобы закончить мне нужна нить, сейчас, я бы ожидать, поток будет который работает в фоновом режиме, пока мы продолжаем ждать инструкции, за исключением того, что этого не происходит. Что происходит, фокус сохраняется на вновь созданном потоке, поэтому дальнейшие инструкции не могут быть получены.
Почему это? Что не так?
Большое спасибо
Бегущий код будет очень полезен. Я уверен, что falsetru на правильном пути, так как показано, что ваша работа() вызывается в основном потоке, порожденный поток будет пытаться запустить вызываемый * возвращенный * из работы(), который не то, что вы хотите здесь , – AdamKG