阅读背景:

多线程补充以及协程

来源:互联网 

多线程补充以及协程

1.线程队列

线程队列用法与进程队列一样

import queue     #先进先出
q = queue.Queue()
q.put(1)
q.put(2)
q.put(3)
print(q.get())   # 1
print(q.get())   # 2
print(q.get())   # 3
print(q.get(block=False))   # 取不到值直接报错
q.get(timeout=2)   # 阻塞2秒,还没有值直接报错


import queue  # 后进先出 LiFo 堆栈
q = queue.LifoQueue(3)
q.put(1)
q.put(2)
q.put('alex')
print(q.get())   # 'alex'
print(q.get())   # 2
print(q.get())   # 1


import queue   # 优先级队列
q = queue.PriorityQueue
q.put((5,'alex'))
q.put((-2,'七七'))
q.put((0,'赫赫'))
print(q.get())   # (-2,'七七')
print(q.get())   # (0,'赫赫')
print(q.get())   # (5,'alex')
#put进入一个元组,元组的第一个元素是优先级(通常是数字,也可以是非数字之间的比较),数字越小优先级越高
#如果两个值的优先级一样,那么按照后面的值的acsii码顺序来排序,如果字符串第一个数元素相同,比较第二个元素的acsii码顺序.优先级相同的两个数据,他们后面的值必须是相同的数据类型才能比较,可以是元组,也是通过元素的ascii码顺序来排序import queu



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: