简单的python多线程问题
#!coding:utf-8
# 导入Queue库,用于资源队列
import Queue
# 导入多线程的模块
import threading
# 导入time模块
import time
# 初始化队列
q = Queue.Queue(0) # 当有多个线程共享一个东西的时候就可以用它了
#初始化最大线程数
MAX_WORKERS = 3
#定义自己的线程类
class myThread(threading.Thread):
def __init__(self, queue, job):
self.queue = queue
self.job = job
threading.Thread.__init__(self)
#处理队列的类
def processQueue(self):
time.sleep(1)
print "%s and the thread is %s\n" % (self.queue.get(), self.job)
#重新定义run方法
def run(self):
while True:
if self.queue.qsize() > 0:
self.processQueue()
else:
exit(0)
if __name__ == "__main__":
for i in range(10 * MAX_WORKERS):
q.put(i)
print "job'size is ", q.qsize()
for i in range(MAX_WORKERS):
myThread(q, i).start()