1
我有一個微小的愚蠢的代碼,這使得很多請求谷歌搜索服務ThreadPoolExecutor +請求==死鎖?
from concurrent.futures import ThreadPoolExecutor
import requests
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
def check(page):
r = requests.get('https://www.google.ru/#q=test&start={}'.format(page * 10))
return len(r.text)
import time
def main():
for q in xrange(30):
st_t = time.time()
with ThreadPoolExecutor(20) as pool:
ret = [x for x in pool.map(check, xrange(1,1000))]
print time.time() - st_t
if __name__ == "__main__":
main()
和它的作品先,但隨後事情錯了。所有20條線程都是活着的,但是它們什麼都不做。我可以看到,他們還活着,但我實際上不明白爲什麼沒有發生。
任何想法可能是錯的?