我正在使用套接字,异步事件驱动编程。我想收到一条消息,一旦收到回复,就发送另一条消息。但我可能会做一些除了听力之外的事情。也就是说,当socket.recv()实际收到消息时,我想要中断。
问题1:如何让第3层中断第4层?即如何处理非null返回socket.recv()的事件而不实际专用“程序时间”实际等待特定时间来收听传入消息?
答案 0 :(得分:0)
在异步编程中,您不会中断由消息触发的操作。所有操作都应该以简短快速的方式完成,这样您就可以每秒处理大量消息。这样每次操作都是原子的,你不会那么容易受到任何竞争条件的影响。 如果您需要并行执行更复杂的处理,可以将这些问题交给辅助线程。像扭曲的图书馆为这些用例做好准备。
答案 1 :(得分:0)
您需要直接使用套接字吗?否则我会建议查看python的优秀Twisted库。它为您处理所有异步工作,因此您可以专注于编写处理程序和代码所需的其他逻辑。扭曲相对容易上手。请查看http://twistedmatrix.com/documents/current/core/howto/index.html处的一些示例。