2017-07-25 39 views
0

我正在构建一个可同时发出多个请求的Web刮板。我目前正在使用multiprocessing模块,但由于它在数字海洋液滴上运行,我遇到了处理器/内存瓶颈。网络操作的多进程与多线程

由于这是一个网站刮板,大部分花在剧本的时候很可能等待网络,是不是更有效地使用线程,而不是为了减少资源的使用?线程是否检测到阻塞网络调用并释放锁?交织多处理和多线程是否可行?

回答

2

由于multiprocessing模块的开发与模型早期的threading大体上兼容,因此希望在单个进程中不要太难转向线程化操作。

任何块调用(I/O,多)将导致调用线程被挂起(成为非可运行),因此其他线程会得到机会使用CPU。

虽然可以在多个进程使用多线程,它不是通常这样做。