线程queue

线程queue,线程共享一个进程数据,为什么还要使用queue?因为共享数据啊,不用queue就需要自己用锁保证数据安全

队列,队列为空get方法会被阻塞,队列满后put方法被阻塞

import queue
q=queue.Queue(5)#先进先出->队列,并设置大小
q.put(1)
q.put("a")
print(q.get())
print(q.get())

 

队列其他方法

q=queue.Queue(5)#先进先出->队列,并设置大小
q.put(1,block=True)#block方法默认阻塞,可以设置成False,满后抛出异常
q.put(1,block=True,timeout=3)#满后阻塞3秒,3秒后还是放不进去则抛出异常
q.put(2,block=False)#等同于q.put_nowait(2
q.get(block=True)#block默认为True
q.get(block=False)#空则抛出异常,等同于q.get_nowait()
q.get(block=True,timeout=3)#等待3秒,3秒后还是为空则抛出异常

堆栈,先进先出。使用方法和Queue()一样

q1=queue.LifoQueue(3)#后进先出队列--->堆栈

优先级队列

q2.put((10,"one"))#元组方式,第一个表示为优先级,数字越小优先级越高,第二个表示内容
q2.put((9,"two"))
原文地址:https://www.cnblogs.com/yaya625202/p/9044125.html