#!/usr/bin/python #coding=utf-8 #http://docs.python.org/library/threading.html import threading, time, random from collections import deque class threadPool(object): def __init__(self, maxNum = 10): self.maxNum = maxNum self.deque = deque() def push(self, target, args = None): t = threading.Thread(target=target, args=args) self.deque.append(t) def run(self): while True: #队列没有进程就退出 if len(self.deque) == 0: break if threading.activeCount() < self.maxNum + 1: t = self.deque.popleft() t.start() time.sleep(0.00001) #减少CPU的损耗 # Define a function for the thread def print_time( threadName, delay): print "%s: %s\t%s" % ( threadName, time.ctime(time.time()) , delay) time.sleep(delay) if __name__ == '__main__': pool = threadPool(2) for i in range(1000): pool.push(target=print_time, args=("Thread-%d" % i, random.randint(1, 100) * 0.001)) pool.run()