扭曲的非阻塞执行reactor.run()?

时间:2014-07-16 08:06:28

标签: python nonblocking reactor

我正在使用扭曲的反应器来进行非块读取插座输入。 但是,我希望在反应堆开始运行后运行另一个循环

.....
reactor.listenTCP(12345, MyFactory())
reactor.run()

# ... blah blah socket input related code
while 1:
    ...
    ...
    if something:
       reactor.stop()

问题发生在reactor.run() while循环无效后。 我可以知道而不是在主te = Thread(target=reactor.run, args=(False,)).start()中使用线程,任何其他方式可以使reactor.run()处理非阻塞吗?

谢谢。

1 个答案:

答案 0 :(得分:3)

reactor.run()是一个阻止通话。你需要做一些事情,在一个单独的线程中运行你的循环。您拥有它的方式,您的循环将运行,但前提是您设法通过某些外部事件或信号停止反应堆。那时,对reactor.run()的调用将返回,代码的其余部分将执行。

我实际上是在寻找一种以非阻塞的方式调用reactor.run()的方法。如果有人有办法做到这一点,我很乐意听到它。