test8.py
43 lines
| 1.0 KiB
| text/x-python
|
PythonLexer
r159 | #!/usr/bin/env python | ||
import Queue | |||
import threading | |||
import urllib2 | |||
import time | |||
hosts = ["http://yahoo.com", "http://google.com", "http://amazon.com", | |||
"http://ibm.com", "http://apple.com"] | |||
queue = Queue.Queue() | |||
class ThreadUrl(threading.Thread): | |||
"""Threaded Url Grab""" | |||
def __init__(self, queue): | |||
threading.Thread.__init__(self) | |||
self.queue = queue | |||
def run(self): | |||
while True: | |||
#grabs host from queue | |||
host = self.queue.get() | |||
#grabs urls of hosts and prints first 1024 bytes of page | |||
url = urllib2.urlopen(host) | |||
print url.read(1024) | |||
#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) | |||
t.setDaemon(True) | |||
t.start() | |||
#populate queue with data | |||
for host in hosts: | |||
queue.put(host) | |||
queue.join() | |||
main() | |||
print "Elapsed Time: %s" % (time.time() - start) |