2017-07-25 74 views
0

我正在構建一個可同時發出多個請求的Web刮板。我目前正在使用multiprocessing模塊,但由於它在數字海洋液滴上運行,我遇到了處理器/內存瓶頸。網絡操作的多進程與多線程

由於這是一個網站刮板,大部分花在劇本的時候很可能等待網絡,是不是更有效地使用線程,而不是爲了減少資源的使用?線程是否檢測到阻塞網絡調用並釋放鎖?交織多處理和多線程是否可行?

回答

2

由於multiprocessing模塊的開發與模型早期的threading大體上兼容,因此希望在單個進程中不要太難轉向線程化操作。

任何塊調用(I/O,多)將導致調用線程被掛起(成爲非可運行),因此其他線程會得到機會使用CPU。

雖然可以在多個進程使用多線程,它不是通常這樣做。