threading Queue 队列共享数据

import threading
import Queue
import time , random

WORKERS = 2

class Worker(threading.Thread):
    ''''''
    def __init__(self,queue):
        self.__queue = queue
        threading.Thread.__init__(self)

    def run(self):
        while True:
            item = self.__queue.get()
            if item is None:
                break
            time.sleep(random.randint(10,100)/1000.0)
            print 'task',item,'finished'

queue = Queue.Queue(0)

for i in xrange(WORKERS):
    Worker(queue).start()

for i in xrange(10):
    queue.put(i)

for i in xrange(WORKERS):
    queue.put(None)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Thread-2 --task 0 finished 2
Thread-1 --task 0 finished 1
Thread-3 --task 0 finished 3
Thread-2 --task 1 finished 4
Thread-1 --task 1 finished 5
Thread-2 --task 2 finished 7
Thread-1 --task 2 finished 8
Thread-1 --task 3 finished 10
Thread-2 --task 3 finished 9
Thread-3 --task 1 finished 6
Thread-3 --task 2 finished 11
Thread-3 --task 3 finished 12