【问题标题】:Twisted non-blocking execute reactor.run()?扭曲的非阻塞执行reactor.run()?
【发布时间】:2023-04-08 09:14:02
【问题描述】:

我正在使用扭曲反应器来非阻塞读取套接字输入。 但是,我想在反应器开始运行后运行另一个循环

.....
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() 以非阻塞方式工作吗?

谢谢。

【问题讨论】:

    标签: python nonblocking reactor


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多