- 主要用来解耦,适合高并发场景、爬虫
- 栈
- 先进后出 FILO
- 先进后出 FILO
- 借助队列实现
- FIFO
- FIFO
- 队列是安全的不用加锁
- q.get()阻塞等待或取数据,如果有数据直接获取,如果没有数据就阻塞等待
- q.put()阻塞或放数据,如果可以放数据继续放,不可以放阻塞等待(IO操作)
- q.get_nowait()不阻塞,如果有数据直接获取,没有数据就报错
- q.put_nowait()不阻塞,如果可以就继续往队列中放数据,不能放就报错
- JoinableQueue模块
- task_done,每消费一个数据就返回一个标识
- join()接收task_done返回的标识,以便知道队列中的数据什么时候消费完
- task_done,每消费一个数据就返回一个标识
- 多进程间共享数据
- Manager模块,Value模块,要加锁
- Manager模块,Value模块,要加锁