120 Python程序中的线程操作-队列

系统 1071 0

[TOC]

一、队列

queue队列:使用 import queue ,用法与进程Queue一样

实际上这里就是Python解释器中的一种数据结构中的类型——队列

这里直接使用队列也可以。 如果还要类似计数器的功能可以加上task_done和join

  1. FIFO 先进先出
  2. LIFO 后进先出
  3. 优先级队列

二、先进先出(FIFO)

class queue.Queue(maxsize=0)

          
            ### 普通队列
q = queue.Queue()

### 没有计数器进行阻塞  FIFO
q.put("first")
q.put("second")
q.put("third")

print(q.get())
print(q.get())
print(q.get())

          
        
          
            ### 普通队列
q = queue.Queue()

### 加了计数器进行阻塞的队列  FIFO
q.put(1)    # +1
q.put(2)    # +1
q.put(3)    # +1

print(q.get())
q.task_done()   # -1
print(q.get())
q.task_done()   # -1
print(q.get())
q.task_done()   # -1
q.join()    # 判断计数器是否为0,不为零则会阻塞

          
        

三、后进先出

class queue.LifoQueue(maxsize=0)

          
            ### 栈
q = queue.LifoQueue()

### 没有计数器进行阻塞  LIFO
q.put(1)    # +1
q.put(2)    # +1
q.put(3)    # +1

print(q.get())
print(q.get())
print(q.get())

          
        
          
            ### 栈
q = queue.LifoQueue()

### 加了计数器进行阻塞的队列  LIFO
q.put(1)    # +1
q.put(2)    # +1
q.put(3)    # +1

print(q.get())
q.task_done()   # -1
print(q.get())
q.task_done()   # -1
print(q.get())
q.task_done()   # -1
q.join()    # 判断计数器是否为0,不为零则会阻塞

          
        

四、优先级队列

class queue.PriorityQueue(maxsize=0)

数字越小优先级越高

          
            ### 设置优先级的队列
q = queue.PriorityQueue()

# put进入一个元组,元组的第一个元素是优先级(通常是数字,也可以是非数字之间的比较),数字越小优先级越高
q.put((20,'a'))
q.put((10,'b'))
q.put((30,'c'))

print(q.get())
print(q.get())
print(q.get())
# 数字越小优先级越高

          
        

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论