标准模块 queue

queue模块实现了多生产者,多消费者的队列。当要求信息必须在多线程间安全交换,这个模块在线程编程时非常有用。Queue模块实现了所有要求的锁机制。 Queue模块主要是多线程,保证线程安全使用的,内部实现是在抢占式线程加上临时锁。但是没有涉及如何去处理线程的重入。

这个类实现了三种类型的queue,区别仅仅在于进去和取出的位置。

1)      个FIFO(First In,First Out)队列中,先加先取,默认方式queue.Queue()

2)      LIFO(Last InFirst Out)的队列中,就是stack  queue.LifoQueue()

3)      priority队列,有序保存,优先级最低的先出来 queue.PriorityQueue()

 方法:

task_done() 意味着之前入队的一个任务已经完成。由队列的消费者线程调用。每一个get()调用得到一个任务,接下来的task_done()调用告诉队列该任务已经处理完毕。

join() 阻塞调用线程,直到队列中的所有任务被处理掉

put() 添加元素到队列

get() 从队列中获取元素,队列中把该元素删除

empty() 判断队列是否为空

qsize() 返回队列大小

full() 判断队列是否慢

猜你喜欢

转载自blog.csdn.net/henku449141932/article/details/80931478