I would say that there are several things:
raw_inputis not fixed eventlet, so its calls are blockedthreadingfixed eventlet, so threads act like coroutines
threading, . :
eventlet.monkey_patch()
:
eventlet.monkey_patch(os=True,
select=True,
socket=True,
thread=False,
time=True)
, thread True, : thread, threading, Queue.
: threading raw_input, :
def raw_input(message):
sys.stdout.write(message)
select.select([sys.stdin], [], [])
return sys.stdin.readline()
sys.stdin, , . , eventlet, .