Skip to content

Commit 0bcf17f

Browse files
committed
docs: 链接修正
1 parent c366ac1 commit 0bcf17f

File tree

4 files changed

+14
-22
lines changed

4 files changed

+14
-22
lines changed

docs/cs-basics/operating-system/linux-intro.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,11 +285,11 @@ Linux 中的打包文件一般是以 `.tar` 结尾的,压缩的命令一般是
285285

286286
需要注意的是:**超级用户可以无视普通用户的权限,即使文件目录权限是 000,依旧可以访问。**
287287

288-
**linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。**
288+
**Linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。**
289289

290-
- **所有者(u)**:一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用 `ls ‐ahl` 命令可以看到文件的所有者 也可以使用 chown 用户名 文件名来修改文件的所有者 。
291-
- **文件所在组(g)**:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用 `ls ‐ahl`命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。
292-
- **其它组(o)**:除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
290+
- **所有者(u)** :一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用 `ls ‐ahl` 命令可以看到文件的所有者 也可以使用 chown 用户名 文件名来修改文件的所有者 。
291+
- **文件所在组(g)** :当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组用 `ls ‐ahl`命令可以看到文件的所有组也可以使用 chgrp 组名 文件名来修改文件所在的组。
292+
- **其它组(o)** :除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
293293

294294
> 我们再来看看如何修改文件/目录的权限。
295295

docs/java/concurrent/java-concurrent-questions-01.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,6 @@ Java 线程状态变迁图(图源:[挑错 |《Java 并发编程的艺术》中
160160
- 当线程进入 `synchronized` 方法/块或者调用 `wait` 后(被 `notify`)重新进入 `synchronized` 方法/块,但是锁被其它线程占有,这个时候线程就会进入 **BLOCKED(阻塞)** 状态。
161161
- 线程在执行完了 `run()`方法之后将会进入到 **TERMINATED(终止)** 状态。
162162

163-
相关阅读:[线程的几种状态你真的了解么?](https://mp.weixin.qq.com/s/R5MrTsWvk9McFSQ7bS0W2w)
164-
165163
### 什么是线程上下文切换?
166164

167165
线程在执行过程中会有自己的运行条件和状态(也称上下文),比如上文所说到过的程序计数器,栈信息等。当出现如下情况的时候,线程会从占用 CPU 状态中退出。
@@ -405,14 +403,4 @@ Process finished with exit code 0
405403

406404
线程 1 首先获得到 resource1 的监视器锁,这时候线程 2 就获取不到了。然后线程 1 再去获取 resource2 的监视器锁,可以获取到。然后线程 1 释放了对 resource1、resource2 的监视器锁的占用,线程 2 获取到就可以执行了。这样就破坏了循环等待条件,因此避免了死锁。
407405

408-
## 虚拟线程
409-
410-
虚拟线程在 Java 21 正式发布,这是一项重量级的更新。我写了一篇文章来总结虚拟线程常见的问题:[虚拟线程常见问题总结](./virtual-thread.md),包含下面这些问题:
411-
412-
1. 什么是虚拟线程?
413-
2. 虚拟线程和平台线程有什么关系?
414-
3. 虚拟线程有什么优点和缺点?
415-
4. 如何创建虚拟线程?
416-
5. 虚拟线程的底层原理是什么?
417-
418406
<!-- @include: @article-footer.snippet.md -->

docs/java/concurrent/java-concurrent-questions-02.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ head:
1616

1717
## ⭐️JMM(Java 内存模型)
1818

19-
JMM(Java 内存模型)相关的问题比较多,也比较重要,于是我单独抽了一篇文章来总结 JMM 相关的知识点和问题:[JMM(Java 内存模型)详解](./jmm.md)
19+
JMM(Java 内存模型)相关的问题比较多,也比较重要,于是我单独抽了一篇文章来总结 JMM 相关的知识点和问题:[JMM(Java 内存模型)详解](https://javaguide.cn/java/concurrent/jmm.html)
2020

2121
## ⭐️volatile 关键字
2222

docs/java/concurrent/java-concurrent-questions-03.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -773,7 +773,7 @@ CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内
773773

774774
![动态配置线程池参数最终效果](https://oss.javaguide.cn/github/javaguide/java/concurrent/meituan-dynamically-configuring-thread-pool-parameters.png)
775775

776-
还没看够?我在[《后端面试高频系统设计&场景题》](https://javaguide.cn/zhuanlan/back-end-interview-high-frequency-system-design-and-scenario-questions.html#%E4%BB%8B%E7%BB%8D)中详细介绍了如何设计一个动态线程池,这也是面试中常问的一道系统设计题。
776+
还没看够?我在[《后端面试高频系统设计&场景题》](https://javaguide.cn/zhuanlan/back-end-interview-high-frequency-system-design-and-scenario-questions.html)中详细介绍了如何设计一个动态线程池,这也是面试中常问的一道系统设计题。
777777

778778
![《后端面试高频系统设计&场景题》](https://oss.javaguide.cn/xingqiu/back-end-interview-high-frequency-system-design-and-scenario-questions-fengmian.png)
779779

@@ -815,7 +815,7 @@ CPU 密集型简单理解就是利用 CPU 计算能力的任务比如你在内
815815

816816
重点是要掌握 `CompletableFuture` 的使用以及常见面试题。
817817

818-
除了下面的面试题之外,还推荐你看看我写的这篇文章: [CompletableFuture 详解](./completablefuture-intro.md)
818+
除了下面的面试题之外,还推荐你看看我写的这篇文章: [CompletableFuture 详解](https://javaguide.cn/java/concurrent/completablefuture-intro.html)
819819

820820
### Future 类有什么用?
821821

@@ -975,7 +975,7 @@ CompletableFuture.runAsync(() -> {
975975

976976
## AQS
977977

978-
关于 AQS 源码的详细分析,可以看看这一篇文章:[AQS 详解](./aqs.md)。
978+
关于 AQS 源码的详细分析,可以看看这一篇文章:[AQS 详解](https://javaguide.cn/java/concurrent/aqs.html)。
979979

980980
### AQS 是什么?
981981

@@ -1349,9 +1349,13 @@ public int await() throws InterruptedException, BrokenBarrierException {
13491349

13501350
## 虚拟线程
13511351

1352-
虚拟线程在 Java 21 正式发布,这是一项重量级的更新。
1352+
虚拟线程在 Java 21 正式发布,这是一项重量级的更新。虽然目前面试中问的不多,但还是建议大家去简单了解一下。我写了一篇文章来总结虚拟线程常见的问题:[虚拟线程常见问题总结](https://javaguide.cn/java/concurrent/virtual-thread.html),包含下面这些问题:
13531353

1354-
虽然目前面试中问的不多,但还是建议大家去简单了解一下,具体可以阅读这篇文章:[虚拟线程极简入门](./virtual-thread.md) 。重点搞清楚虚拟线程和平台线程的关系以及虚拟线程的优势即可。
1354+
1. 什么是虚拟线程?
1355+
2. 虚拟线程和平台线程有什么关系?
1356+
3. 虚拟线程有什么优点和缺点?
1357+
4. 如何创建虚拟线程?
1358+
5. 虚拟线程的底层原理是什么?
13551359

13561360
## 参考
13571361

0 commit comments

Comments
 (0)