Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0bcf17f

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /