1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#!/usr/bin/env python # coding=utf-8 import Queue import threading import urllib2 import time hosts = ["http://baidu.com", "http://baidu.com""http://youku.com", "http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com","http://ibm.com", "http://apple.com"] queue = Queue.Queue() class ThreadUrl(threading.Thread): def __init__(self, queue,name): threading.Thread.__init__(self) self.name = name self.queue = queue def run(self): while True: #grabs host from queue print 'This the %s thread' % self.name host = self.queue.get() #grabs urls of hosts and prints first 1024 bytes of page try: url = urllib2.urlopen(host) m = url.read(1024) except: print host #signals to queue job is done self.queue.task_done() start = time.time() def main(): #spawn a pool of threads, and pass them queue instance for i in range(5): t = ThreadUrl(queue,i) t.setDaemon(True) t.start() #populate queue with data for host in hosts: queue.put(host) #wait on the queue until everything has been processed queue.join() main() print "Elapsed Time: %s" % (time.time() - start) |
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021