python多线程 (四) 线程优先级队列
Python的Queue模块FIFO、LIFO、LifoQueue、PriorityQueue这些队列实现了锁原语可以在多线程中直接使用。
Queue模块中的常用方法:
- Queue.qsize()返回队列的大小
- Queue.empty()如果队列为空,返回True,反之False
- Queue.full()如果队列满了,返回True,反之False
- Queue.full与maxsize大小对应
- Queue.get([block[,timeout]])获取队列,timeout等待时间
- Queue.get_nowait()相当Queue.get(False)
- Queue.put(item)写入队列,timeout等待时间
- Queue.put_nowait(item)相当Queue.put(item,False)
- Queue.task_done()在完成一项工作之后,Queue.task_done()函数向任务已经完成的队列发送一个信号
- Queue.join()实际上意味着等到队列为空,再执行别的操作
上代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/8/5 19:38
# @Author : Running_Tiger
import queue
import threading
import time
exitFlag = 0
class myThread (threading.Thread):
def __init__(self, threadID, name, q):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name