gpt4 book ai didi

Python - 等待来自大量套接字的输入

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:20 25 4
gpt4 key购买 nike

我正在用 Python 做一个简单的实验。我有一个“主”进程,负责所有其他进程,每个进程都通过 unix 套接字连接到主进程。我希望主进程能够监视所有套接字的响应——但理论上可能有将近一百个套接字。线程将如何影响应用程序的内存和性能?什么是最好的解决方案?非常感谢!

最佳答案

一百个并发线程可能正在插入线程的合理限制。如果您发现这是组织代码的最简洁方式,我会建议您试一试,但线程确实无法扩展太远。

更好的方法是使用类似 select 的技术等待其中一个套接字可读/可写/或有错误报告。这种机制允许您进入休眠状态,直到发生有趣的事情,处理尽可能多的套接字有内容要处理,然后再次返回休眠状态,所有这些都在一个执行线程中完成。移除多线程通常可以减少出错的机会,这种编程风格应该让您轻松进入数百个连接。 (如果你想超过 100 个,我会使用 poll 功能而不是 select - 不断重建有趣的文件描述符列表花费的时间 poll 不需要。)

需要考虑的是 Python Twisted Framework .他们已经竭尽全力提供一种一致的方式来将回调 Hook 到事件上,以进行此类确切的编程。 (如果您熟悉 node.js,它有点像那样,但 Python。)我必须承认对 Twisted 有一点反感——我在他们的文档中读到很深的时候都感到非常困惑-- 但是 a lot of people made it further in the docs than I did .您可能会发现它比我的更合适。

关于Python - 等待来自大量套接字的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com