队列
属性
1.先入先出
思考点
先入先出的应用场景有哪些
1.基于队列的分段式锁-例如 (a,b) , (c,d) , 优点通过无锁涉及,减少阻塞,基于消息队列的重试机制保证可靠性
2.广度优先搜索 (BFS) - 广度优先搜索的要求是先遍历周边的
3.顺序消息 - 保证happen-before原则
4.生产者-消费者模式,基于队列的阻塞模型
5.限流器 - 每分钟访问多少次,令牌桶
栈
属性
1.后入先出
思考点
后入先出有哪些场景
1.方法栈-基于目标分解,需要依赖子任务的结果 ,例如 A-->B-->C--> B-->A
2.不公平的任务模型-最新的任务最先执行
3.深度优先搜索(DFS) - 给定数组的真子集 - 空间复杂度为O(n)
总结
1.使用正确的数据结构可以减少问题理解的难度,提升解决问题的效率