如何使用多处理创建套接字对象并将其传递回父进程

时间:2013-07-04 07:10:23

标签: python sockets multiprocessing

我希望使用多处理从主程序创建一个sock.Socket对象,以避免在创建过程中套接字不可用时阻塞主程序。 套接字已创建,但无法返回主程序。

经过一些阅读后,似乎无法在python进程之间共享对象。有可能的设计模式来规避这个吗?多处理是否适用于此应用程序,还是应该考虑其他方法?

1 个答案:

答案 0 :(得分:1)

你应该保持它非常简单并且有一个套接字处理程序线程:

  1. 打开Socket,
  2. 保留对它的所有权,
  3. 为您的主程序处理它,即在到达的数据上通过事件,pubsub或回调之一将其传递给父级,
  4. 如果连接丢失,请重新打开或让父母知道并干净地结束,
  5. 关闭时关闭套接字。
  6. 然后一切都变得无阻塞。这是一个更清晰的设计模式,特别是如果你使用pubsub。