Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
3e8b9925
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
3e8b9925
编写于
1月 08, 2021
作者:
D
DONTWATTOSLEEP
提交者:
GitHub
1月 08, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update 线性数据结构.md
89 队列->栈 308 实现->现实
上级
4d54264f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
4 deletion
+3
-4
docs/dataStructures-algorithms/data-structure/线性数据结构.md
docs/dataStructures-algorithms/data-structure/线性数据结构.md
+3
-4
未找到文件。
docs/dataStructures-algorithms/data-structure/线性数据结构.md
浏览文件 @
3e8b9925
...
...
@@ -88,7 +88,7 @@
**栈**
(stack)只允许在有序的线性数据集合的一端(称为栈顶 top)进行加入数据(push)和移除数据(pop)。因而按照
**后进先出(LIFO, Last In First Out)**
的原理运作。
**在栈中,push 和 pop 的操作都发生在栈顶。**
栈常用一维数组或链表来实现,用数组实现的
队列叫作
**顺序栈**
,用链表实现的队列
叫作
**链式栈**
。
栈常用一维数组或链表来实现,用数组实现的
栈叫作
**顺序栈**
,用链表实现的栈
叫作
**链式栈**
。
```
java
假设堆栈中有n个元素
。
...
...
@@ -305,6 +305,6 @@ myStack.pop();//报错:java.lang.IllegalArgumentException: Stack is empty.
-
**阻塞队列:**
阻塞队列可以看成在队列基础上加了阻塞操作的队列。当队列为空的时候,出队操作阻塞,当队列满的时候,入队操作阻塞。使用阻塞队列我们可以很容易实现“生产者 - 消费者“模型。
-
**线程池中的请求/任务队列:**
线程池中没有空闲线程时,新的任务请求线程资源时,线程池该如何处理呢?答案是将这些请求放在队列中,当有空闲线程的时候,会循环中反复从队列中获取任务来执行。队列分为无界队列(基于链表)和有界队列(基于数组)。无界队列的特点就是可以一直入列,除非系统资源耗尽,比如 :
`FixedThreadPool`
使用无界队列
`LinkedBlockingQueue`
。但是有界队列就不一样了,当队列满的话后面再有任务/请求就会拒绝,在 Java 中的体现就是会抛出
`java.util.concurrent.RejectedExecutionException`
异常。
-
Linux 内核进程队列(按优先级排队)
-
实现
生活中的派对,播放器上的播放列表;
-
现实
生活中的派对,播放器上的播放列表;
-
消息队列
-
等等......
\ No newline at end of file
-
等等......
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录