今天想写一个工具,通过多线程去一个队列中读取数据,要求如下:
1.多个线程同时读取队列,所以队列要做到线程安全:queue.Queue,这个本身就是线程安生的,所以没有问题
2.主线程要等到所有新开的子线程结束后才能结束,这个用到了Threading中的isAlive()方法,来判断线程是否还存活
3.不能出现开了多个子线程,却被一个抢着CPU执行时间,这个学过操作系统的都知道time.sleep(0.01),线程停止一下,让出CPU下面是代码了
我的博客:http://www.paulwangblog.com/
'''
Created on 2011-11-10
@author: PaulWang
Description:
FileName:myThread.py
'''
import threading
import time
class MyThread(threading.Thread):
def __init__(self, threadname,records):
threading.Thread.__init__(self, name=threadname)
self.records = records
self.name = threadname
def run(self):
# time.sleep(0.01)
print("downloadFromQueue start %d" % self.records.qsize())
while(self.r