扭曲多处理

时间:2011-07-06 22:49:56

标签: multithreading twisted multiprocessing

我的扭曲应用程序收到大量数据包并使用多个线程来处理数据包。我在不同的线程中处理数据包,以便反应器循环可以自由地接收数据包。但是,由于GIL,实际上只有1个线程在执行。结果,运行reactor循环的线程落后并丢失数据包。

而不是我想要使用多个进程的线程。有人可以指导我如何使用扭曲的多个进程吗?

2 个答案:

答案 0 :(得分:3)

使用twisted.internet.reactor. spawnProcessAmpoule开始您的子流程。然后,您可以按照接收网络数据包的方式从这些进程接收标准输出。

答案 1 :(得分:1)

您可以使用透视代理“twisted.spread.pb”在多个扭曲过程之间交换日期,甚至可以执行远程调用。