Python——Queue(队列模块)
特点:
- 不能完成进程之间的通信,因为没有IPC
- 可以进行线程之间的通信
- 里面没有值或取不到值,将进入等待状态。
- linux和winodws,线程的get_nowait和put_nowait都支持。进程的linux不支持。
常用命令:
get
- 获取队列数据
- 获取不到将阻塞
put
- 上传数据至队列。
- 如果超出了规定的队列长度,那么将会进行阻塞。
get_nowait
- 获取队列数据
- 获取不到将报错
put_nowait
- 上传数据至队列
- 超出队列长度将报错
Queue(先进先出队列)
常使用于c/s端,统一进行处理。
1 2 3 4 | from queue import Queue #先进先出队列 q = Queue( 2 ) q.put( 1 ) q.get() |
LifoQueue(后进先出队列,栈的表现形式)
常用于算法相关
1 2 3 4 | from queue import LifoQueue #后进先出(栈) q = LifoQueue( 2 ) q.put( 1 ) q.get() |
PriorityQueue(优先级队列)
- 带有优先级的服务时,像VIP。
- 可以直接写字符串形式,会按照ascii码排列
- 不能数字和字符串一起进行
1 2 3 4 5 6 7 8 | from queue import PriorityQueue #优先级队列 q = PriorityQueue() q.put(( 10 , 'xuan' )) q.put(( 20 , 'haha' )) q.put(( 6 , 'haha' )) q.get() q.get() q.get() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)