Python 网络操作的多进程与多线程

Python 网络操作的多进程与多线程,python,multithreading,web-scraping,multiprocessing,Python,Multithreading,Web Scraping,Multiprocessing,我正在构建一个web scraper,它可以同时发出多个请求。我目前正在使用多处理模块来实现这一点,但由于它运行在数字海洋液滴上,我遇到了处理器/内存瓶颈 由于这是一个web刮刀,而且在脚本上花费的大部分时间可能都在等待网络,因此使用线程来减少资源使用不是更有效吗?线程是否检测到阻塞的网络调用并释放锁?将多处理和多线程交织在一起是否可行?由于开发的多处理模块在很大程度上与它之前的线程化模型兼容,因此希望您不会发现在单个进程中转移到线程化操作太困难 任何阻塞调用(主要是I/O)都会导致调用线程挂起

我正在构建一个web scraper,它可以同时发出多个请求。我目前正在使用
多处理
模块来实现这一点,但由于它运行在数字海洋液滴上,我遇到了处理器/内存瓶颈


由于这是一个web刮刀,而且在脚本上花费的大部分时间可能都在等待网络,因此使用线程来减少资源使用不是更有效吗?线程是否检测到阻塞的网络调用并释放锁?将多处理和多线程交织在一起是否可行?

由于开发的
多处理
模块在很大程度上与它之前的
线程化
模型兼容,因此希望您不会发现在单个进程中转移到线程化操作太困难

任何阻塞调用(主要是I/O)都会导致调用线程挂起(变得不可运行),因此其他线程将有机会使用CPU

虽然可以在多个进程中使用多线程,但这样做并不常见