0
我正在构建一个可同时发出多个请求的Web刮板。我目前正在使用multiprocessing
模块,但由于它在数字海洋液滴上运行,我遇到了处理器/内存瓶颈。网络操作的多进程与多线程
由于这是一个网站刮板,大部分花在剧本的时候很可能等待网络,是不是更有效地使用线程,而不是为了减少资源的使用?线程是否检测到阻塞网络调用并释放锁?交织多处理和多线程是否可行?
我正在构建一个可同时发出多个请求的Web刮板。我目前正在使用multiprocessing
模块,但由于它在数字海洋液滴上运行,我遇到了处理器/内存瓶颈。网络操作的多进程与多线程
由于这是一个网站刮板,大部分花在剧本的时候很可能等待网络,是不是更有效地使用线程,而不是为了减少资源的使用?线程是否检测到阻塞网络调用并释放锁?交织多处理和多线程是否可行?
由于multiprocessing
模块的开发与模型早期的threading
大体上兼容,因此希望在单个进程中不要太难转向线程化操作。
任何块调用(I/O,多)将导致调用线程被挂起(成为非可运行),因此其他线程会得到机会使用CPU。
虽然可以在多个进程使用多线程,它不是通常这样做。