私の場合を説明するために、この最小限のコードを書きました。
import threading
import time
import eventlet
eventlet.monkey_patch()
def printing_function():
while True:
# here i want to do some work
print "printing"
time.sleep(1)
if __name__ == '__main__':
thread = threading.Thread(target=printing_function)
thread.start()
while True:
# here i want to wait for users input
raw_input("raw input\n")
print "inside main loop"
time.sleep(1)
2 つのスレッドがあっても、raw_input を呼び出すと両方ともブロックされます。eventlet.monkey_patch() をコメントアウトすると、1 つのスレッドのみがブロックされ、別のスレッドが「印刷」を続けます。なぜ、どうすればいいのですか?