0
我正在構建一個可同時發出多個請求的Web刮板。我目前正在使用multiprocessing
模塊,但由於它在數字海洋液滴上運行,我遇到了處理器/內存瓶頸。網絡操作的多進程與多線程
由於這是一個網站刮板,大部分花在劇本的時候很可能等待網絡,是不是更有效地使用線程,而不是爲了減少資源的使用?線程是否檢測到阻塞網絡調用並釋放鎖?交織多處理和多線程是否可行?
我正在構建一個可同時發出多個請求的Web刮板。我目前正在使用multiprocessing
模塊,但由於它在數字海洋液滴上運行,我遇到了處理器/內存瓶頸。網絡操作的多進程與多線程
由於這是一個網站刮板,大部分花在劇本的時候很可能等待網絡,是不是更有效地使用線程,而不是爲了減少資源的使用?線程是否檢測到阻塞網絡調用並釋放鎖?交織多處理和多線程是否可行?
由於multiprocessing
模塊的開發與模型早期的threading
大體上兼容,因此希望在單個進程中不要太難轉向線程化操作。
任何塊調用(I/O,多)將導致調用線程被掛起(成爲非可運行),因此其他線程會得到機會使用CPU。
雖然可以在多個進程使用多線程,它不是通常這樣做。