from concurrent.futures import ThreadPoolExecutorimport requestsimport requests.packages.urllib3requests.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 timedef 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_tif __name__ == "__main__": main()
它首先起作用,但后来出了问题.所有20个线程都存活,但后来它们什么也没做.我可以在htop看到它们还活着,但实际上我不明白为什么没有发生.
什么想法可能是错的?
解决方法 好像,答案就在那里.https://github.com/kennethreitz/requests/issues/2649
https://github.com/kennethreitz/requests/issues/2925
以上是内存溢出为你收集整理的python – ThreadPoolExecutor请求==死锁?全部内容,希望文章能够帮你解决python – ThreadPoolExecutor请求==死锁?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)