尽可能简化您的原始版本:
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
函数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)