一个非常简单的多线程并行URL获取(无队列)

一个非常简单的多线程并行URL获取(无队列),第1张

一个非常简单的多线程并行URL获取(无队列

尽可能简化您的原始版本:

import threadingimport urllib2import timestart = time.time()urls = ["http://www.google.com", "http://www.apple.com", "http://www.microsoft.com", "http://www.amazon.com", "http://www.facebook.com"]def fetch_url(url):    urlHandler = urllib2.urlopen(url)    html = urlHandler.read()    print "'%s' fetched in %ss" % (url, (time.time() - start))threads = [threading.Thread(target=fetch_url, args=(url,)) for url in urls]for thread in threads:    thread.start()for thread in threads:    thread.join()print "Elapsed Time: %s" % (time.time() - start)

唯一的新技巧是:

  • 跟踪创建的线程。
  • 如果您只想知道线程何时完成,请不要打扰线程计数器。
    join
    已经告诉你了。
  • 如果不需要任何状态或外部API,则不需要
    Thread
    子类,而只需一个
    target
    函数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存