在Python中处理来自多个套接字的传入数据
背景: 我有一个当前的实现,它在python中从大约120个不同的套接字连接接收数据。在我当前的实现中,我用一个专用线程处理每个单独的套接字连接。这些线程中的每一个都解析数据,并最终将其存储在共享的锁定字典中。这些套接字没有统一的数据速率,一些套接字比其他套接字获得更多的数据 问题:在Python中处理来自多个套接字的传入数据,python,multithreading,sockets,Python,Multithreading,Sockets,背景: 我有一个当前的实现,它在python中从大约120个不同的套接字连接接收数据。在我当前的实现中,我用一个专用线程处理每个单独的套接字连接。这些线程中的每一个都解析数据,并最终将其存储在共享的锁定字典中。这些套接字没有统一的数据速率,一些套接字比其他套接字获得更多的数据 问题: 这是在python中处理传入数据的最佳方法,还是python在处理每个线程的多个套接字方面有更好的方法?使用异步方法会让您更高兴。例如,作为一个众所周知的应用程序,这是一个很好的实现。您也可以轻松地将Tornado
这是在python中处理传入数据的最佳方法,还是python在处理每个线程的多个套接字方面有更好的方法?使用异步方法会让您更高兴。例如,作为一个众所周知的应用程序,这是一个很好的实现。您也可以轻松地将Tornado的iLoop用于web服务器以外的其他用途
还有其他图书馆,如:;但我认为Tornado是一个更好的开始,因为它提供了循环和在其上实现的web服务器,是如何很好地使用循环的一个很好的例子。如果您使用线程,基本上就是这样 另一种方法是使用各种异步网络库中的一种,例如,或。如您所述,可用于高效地处理许多异步套接字。asyncoro的另一个好处是,您不必担心锁定共享字典,因为asyncoro在任何时候最多执行一个协同程序,并且没有强制抢占