Home | Mirror | Search

第 33 章 Library

目錄

1. threading
2. syslog
2.1. udp client
2.2. udp server
3. Socket
3.1. UDP
3.1.1. UDP Server
3.1.2. UDP Clinet
4. Daemon
5. python-memcached
6. Pyro - Pyro is short for PYthon Remote Objects
7. Python Imaging Library
8. getopt – Command line option parsing
9. syslog
9.1. udp client
9.2. udp server
10. python-subversion
11. SimpleHTTPServer
12. fuse-python.x86_64 : Python bindings for FUSE - filesystem in userspace
13. Network
13.1. gevent - A coroutine-based network library for Python
14. TUI
14.1. urwid
14.2. pycdk
14.3. python-newt - A NEWT module for Python

1. threading

import threading  
class MyThread(threading.Thread):  
    def __init__(self, name=None):  
        threading.Thread.__init__(self)  
        self.name = name  
      
    def run(self):  
        print self.name  
  
def test():  
    for i in range(0, 100):  
        t = MyThread("thread_" + str(i))  
        t.start()  
  
if __name__=='__main__':  
    test()  	
	

ref: http://www.ibm.com/developerworks/aix/library/au-threadingpython/

	
 #!/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)

#wait on the queue until everything has been processed     
queue.join()

main()
print "Elapsed Time: %s" % (time.time() - start)
	
	
comments powered by Disqus