https://docs.python.org/2/library/asyncore.html
This module provides the basic infrastructure for writing asynchronous socket service clients and servers.
。这个里面有一个重要的类asyncore.dispatcher,利用asynscore进行异步socket读写的时候,一般是采用继承asyncore.dispatcher,然后覆写该类的基本方法即可。
该模块提供了异步socket服务客户端和服务器的基础架构。
只有两种方法让程序在单个处理器上的同时做超过一件的事情。 多线程编程是最简单,最普遍的方式,但还有另一种非常不同的技术,可以让你具有多线程几乎所有的优点,实际上并没有使用多线程。程序的瓶颈主要在于I/O时是比较可行的。如果你的程序的瓶颈在处理器,确实需要多线程,不过网络服务器的瓶颈大多在I/O。
如果您的操作系统支持I/O库的select()系统调用(一般都支持) ,那么你可以使用它同时处理多个通信信道,做其他的工作的同时让I/O在后台执行,这比多线程更容易理解。
asyncore和asynchat的基本思路是创建一个或多个网络通道,即asyncore.dispatcher和asynchat.async_chat的实例。然后添加到全局映射,如果你没有创建自己的映射,可以直接使用loop()函数。loop()激活所有通道服务,执行直到最后一个通道关闭。