关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
6年前关闭。
Improve this question
不久前,我写了一个 web-spider,我对它进行了多线程处理,以使并发请求能够同时发生。那是在我的 Python 青年时期,在我知道 GIL 之前的日子里以及它为多线程代码创建的相关问题(即,大多数情况下,东西都以序列化结束!)...
我想重新编写此代码以使其更健壮并性能更好。基本上有两种方法可以做到这一点:我可以使用新的 multiprocessing module在 2.6+ 中,或者我可以使用某种 react 器/基于事件的模型。我宁愿做后者,因为它更简单,更不容易出错。
因此,问题涉及哪种框架最适合我的需求。以下是我目前所知道的选项列表:
[编辑:不幸的是,它不能在 Windows 上运行,这对我来说很重要 - 这是我支持这个蹩脚平台的要求]
有什么我错过的吗?肯定有一个库适合简化的异步网络库的最佳位置!
[编辑:非常感谢 intgr因为他指向 this page .如果你滚动到底部,你会看到一个非常好的项目列表,旨在以一种或另一种方式解决这个任务。实际上,自 Twisted 成立以来,事情确实发生了变化:人们现在似乎更喜欢 co-routine基于解决方案,而不是传统的 react 器/回调导向的解决方案。这种方法的好处是代码更清晰更直接:我过去肯定发现过,尤其是在使用 boost.asio 时。在 C++ 中,基于回调的代码可能导致设计难以遵循,并且对于未经训练的眼睛来说相对模糊。使用协同程序可以让您编写至少看起来更同步的代码。我想现在我的任务是找出我喜欢这些库中的哪一个并试一试!很高兴我现在问...]
[编辑:任何关注或偶然发现此问题或在任何意义上关心此主题的人都可能感兴趣:我发现了一篇关于 the available tools 当前状态的非常棒的文章|对于这份工作]
最佳答案
Twisted 很复杂,你是对的。扭曲不臃肿。
如果你看这里:http://twistedmatrix.com/trac/browser/trunk/twisted你会发现一个有组织的、全面的、经过充分测试的互联网协议(protocol)套件,以及用于编写和部署非常复杂的网络应用程序的帮助代码。我不会将膨胀与全面性混淆。
众所周知,Twisted 文档乍一看并不是对用户最友好的,我相信这会让很多不幸的人望而却步。但如果你花时间,扭曲是惊人的(恕我直言)。我做到了,事实证明这是值得的,我建议其他人也尝试一下。
关于python - 一个干净、轻量级的 Python 扭曲替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1824418/