Python 3.4, я пытаюсь создать сервер с помощью модуля веб-сокетов (ранее я использовал обычные сокеты, но хотел создать клиент javascript), когда столкнулся с проблемой (потому что он ожидает асинхронность, по крайней мере, если примеры должны быть доверенный, которым я раньше не пользовался). Поток просто не работает. Если я запущу следующий код, bar никогда не будет напечатан, тогда как если я закомментирую строку с помощью yield from
, она будет работать, как и ожидалось. Итак, yield, вероятно, делает что-то, чего я не совсем понимаю, но почему он даже не выполняется? Должен ли я установить питон 3.5?
import threading
class SampleThread(threading.Thread):
def __init__(self):
super(SampleThread, self).__init__()
print("foo")
def run(self):
print("bar")
yield from var2
thread = SampleThread()
thread.start()
yield
из подпрограммы запуска, которая должна вечно зацикливаться/делать что-то, а не возвращать/выдавать что-то. - person Jean-François Fabre   schedule 18.12.2016loop.run_in_executor()
. Но если вам это действительно нужно — запустите новый цикл событий явно в своем потоке. - person Andrew Svetlov   schedule 18.12.2016