线程queue
线程之间已经是共享数据的,为什么还使用线程queue?
线程需要自己加锁,线程queue帮我们处理好加锁的问题
有三种不同的用法
第一种方法:
class queue.Queue(maxsize=0) #队列:先进先出
put('four',block=,timeout=)
第一个参数: 放入的数据
第二个参数:
block=True 时 队列满了,再放数据不抛出异常,程序卡主,不指定block参数,默认是True
block=false时,队列满了,再放数据,不阻塞,抛出异常
源码
def put(self, item, block=True, timeout=None):
第三个参数 timeout:
设置队列满后,再放数据发生的阻塞时间,如果过了这个时间,还没有取数据,队列还是满的,就抛出异常,就算block=True也抛出异常
put()
设置只能放3个数据,队列满,再去放第四个数据,程序卡主 阻塞了
默认block参数为True
importqueue
q= queue.Queue(3) #先进先出 --> 队列
q.put("first")
q.put("second")
q.put("third")
q.put("four")
block=False时候,队列满了,再放数据,不阻塞,抛出异常
importqueue
q= queue.Queue(3) #先进先出 --> 队列
q.put("first")
q.put("second")
q.put("third")
q.put("four",block=False)'''q.put("four",block=False)<