python asyncore 还是线程池用于网络爬虫?
看起来我可以用Python快速爬虫有两种方法:
使用线程池和阻塞套接字
使用非阻塞套接字,比如select、asyncore等
我觉得这里其实不需要用到线程,第二种方案更好。
哪种方法更好,为什么呢?
1 个回答
3
Twisted 通常比 asyncore 更受欢迎。它是一个异步输入输出的框架,也可以和线程池一起使用。
在 Python 中,你应该更倾向于使用异步输入输出,而不是线程。这是因为在 Python 的标准实现(CPython)中,线程的表现不太好,主要是因为有个叫 GIL 的东西。