多线程补充以及协程
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