[英]httplib2 socket.sslerror: (-1, 'SSL exception')
[英]Is Twisted an httplib2/socket replacement?
许多python库,即使是最近编写的,也使用httplib2或套接字接口来执行网络任务。
由于它们的阻塞特性,这些显然比Twisted更容易编码,但我认为将它们与其他代码(尤其是GUI代码)集成时这是一个缺点。 如果您想要可扩展性,并发性或GUI集成,同时避免多线程,那么Twisted是一个自然的选择。
所以我对这些问题的意见感兴趣:
编辑:请让我用另一种方式说出来。 您是否觉得使用Twisted编写新的库代码可能会增加其采用的障碍? Twisted有明显的好处(特别是gimel所说的可移植性和可伸缩性),但是它不是一个核心python库的事实可能会被一些人认为是一个缺点。
请参阅asychronous-programming-in-python-twisted ,您必须决定是否符合非标准(外部)库以满足您的需求。 请注意@Glyph的答案,他是Twisted
项目的创始人,可以权威地回答任何与Twisted
相关的问题。
在像Twisted这样的库的核心,主循环中的函数不是休眠,而是像select()选择模块之类的模块所公开的操作系统调用,如select()或poll()。 我说“喜欢”选择,因为这是一个在平台之间变化很大的API,几乎每个GUI工具包都有自己的版本。 Twisted目前为此主题提供了14种不同变体的抽象界面。 这种API提供的常见问题是提供一种说法“这是我正在等待的事件列表。进入睡眠直到其中一个发生,然后醒来并告诉我它们是哪一个。 “
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.