Skip to content

Commit 1b75f5c

Browse files
committed
Update Java Note
1 parent ccf1f99 commit 1b75f5c

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

DB.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12657,7 +12657,7 @@ appendfsync always|everysec|no #AOF写数据策略:默认为everysec
1265712657
特点:安全性最高,数据零误差,但是性能较低,不建议使用
1265812658

1265912659

12660-
- everysec:先将 aof_buf 缓冲区中的内容写入到 AOF 文件,判断上次同步 AOF 文件的时间距离现在超过一秒钟,再次对 AOF 文件进行同步,这个同步操作是由一个(子)线程专门负责执行的
12660+
- everysec:先将 aof_buf 缓冲区中的内容写入到 AOF 文件,判断上次同步 AOF 文件的时间距离现在超过一秒钟,再次对 AOF 文件进行同步 fsync,这个同步操作是由一个(子)线程专门负责执行的
1266112661

1266212662
特点:在系统突然宕机的情况下丢失 1 秒内的数据,准确性较高,性能较高,建议使用,也是默认配置
1266312663

@@ -12826,7 +12826,7 @@ RDB 的特点
1282612826

1282712827
AOF 特点:
1282812828

12829-
* AOF 的优点:数据持久化有较好的实时性,通过 AOF 重写可以降低文件的体积
12829+
* AOF 的优点:数据持久化有**较好的实时性**,通过 AOF 重写可以降低文件的体积
1283012830
* AOF 的缺点:文件较大时恢复较慢
1283112831

1283212832
AOF 和 RDB 同时开启,系统默认取 AOF 的数据(数据不会存在丢失)
@@ -12955,7 +12955,7 @@ int main(void)
1295512955

1295612956
<img src="https://seazean.oss-cn-beijing.aliyuncs.com/img/DB/Redis-fork函数使用演示.png" style="zoom: 80%;" />
1295712957

12958-
在 p3224 和 p3225 执行完第二个循环后,main 函数退出,进程死亡。所以 p3226,p3227 就没有父进程了,成为孤儿进程,所以 p3226 和 p3227 的父进程就被置为 ID 为 1的 init 进程(笔记 Tool → Linux → 进程管理详解)
12958+
在 p3224 和 p3225 执行完第二个循环后,main 函数退出,进程死亡。所以 p3226,p3227 就没有父进程了,成为孤儿进程,所以 p3226 和 p3227 的父进程就被置为 ID 为 1 的 init 进程(笔记 Tool → Linux → 进程管理详解)
1295912959

1296012960
参考文章:https://blog.csdn.net/love_gaohz/article/details/41727415
1296112961

@@ -14557,7 +14557,7 @@ Sentinel 为主服务器创建的实例结构的 sentinels 字典保存所有同
1455714557
* 如果源 Sentinel 的实例结构存在,那么对源 Sentinel 的实例结构进行更新
1455814558
* 如果源 Sentinel 的实例结构不存在,说明源 Sentinel 是刚开始监视主服务器,目标 Sentinel 会为源 Sentinel 创建一个新的实例结构,并将这个结构添加到 sentinels 字典里面
1455914559

14560-
因为 Sentinel 可以接收到的频道信息来获知其他 Sentinel 的存在,并通过发送频道信息来让其他 Sentinel 知道自己的存在,所以用户在使用 Sentinel 时并不需要提供各个 Sentinel 的地址信息,**监视同一个主服务器的多个 Sentinel 可以自动发现对方**
14560+
因为 Sentinel 可以接收到的频道信息来获知其他 Sentinel 的存在,并通过发送频道信息来让其他 Sentinel 知道自己的存在,所以用户在使用 Sentinel 时并不需要提供各个 Sentinel 的地址信息,**监视同一个主服务器的多个 Sentinel 可以xiang发现对方**
1456114561

1456214562

1456314563

@@ -14628,7 +14628,7 @@ SENTINEL is-master-down-by-addr <ip> <port> <current_epoch> <runid>
1462814628

1462914629
源 Sentinel 将统计其他 Sentinel 同意主服务器已下线的数量,当这一数量达到配置指定的判断客观下线所需的数量(quorum)时,Sentinel 会将主服务器对应实例结构 flags 属性的 SRI_O_DOWN 标识打开,代表客观下线,并对主服务器执行故障转移操作
1463014630

14631-
注意:不同 Sentinel 判断客观下线的条件可能不同,因为载入的配置文件中的属性(quorum)可能不同
14631+
注意:**不同 Sentinel 判断客观下线的条件可能不同**,因为载入的配置文件中的属性(quorum)可能不同
1463214632

1463314633

1463414634

Java.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5891,7 +5891,7 @@ class Dog{}
58915891

58925892
### 基本介绍
58935893

5894-
异常:程序在编译或者执行的过程中可能出现的问题,Java 为常见的代码异常都设计一个类来代表
5894+
异常:程序在编译或者执行的过程中可能出现的问题,Java 为常见的代码异常都设计一个类来代表
58955895

58965896
错误:Error ,程序员无法处理的错误,只能重启系统,比如内存奔溃,JVM 本身的奔溃
58975897

Prog.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,7 @@ Java 提供了线程优先级的机制,优先级会提示(hint)调度器
651651

652652
#### 未来优化
653653

654-
内核级线程调度的成本较大,所以引入了更轻量级的协程。用户线程的调度由用户自己实现(一对多的线程模型),被设计为协同式调度,所以叫协程
654+
内核级线程调度的成本较大,所以引入了更轻量级的协程。用户线程的调度由用户自己实现(多对一的线程模型,多**个用户线程映射到一个内核级线程**),被设计为协同式调度,所以叫协程
655655

656656
* 有栈协程:协程会完整的做调用栈的保护、恢复工作,所以叫有栈协程
657657
* 无栈协程:本质上是一种有限状态机,状态保存在闭包里,比有栈协程更轻量,但是功能有限
@@ -4608,7 +4608,7 @@ java.util.concurrent.BlockingQueue 接口有以下阻塞队列的实现:**FIFO
46084608

46094609
##### 入队出队
46104610

4611-
LinkedBlockingQueue源码
4611+
LinkedBlockingQueue 源码
46124612

46134613
```java
46144614
public class LinkedBlockingQueue<E> extends AbstractQueue<E>
@@ -5603,7 +5603,7 @@ Executors 提供了四种线程池的创建:newCachedThreadPool、newFixedThre
56035603

56045604
核心线程数常用公式:
56055605

5606-
- **CPU 密集型任务(N+1):** 这种任务消耗的是 CPU 资源,可以将核心线程数设置为 N (CPU 核心数) + 1,比 CPU 核心数多出来的一个线程是为了防止线程发生缺页中断,或者其它原因导致的任务暂停而带来的影响。一旦任务暂停,CPU 某个核心就会处于空闲状态,而在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间
5606+
- **CPU 密集型任务 (N+1):** 这种任务消耗的是 CPU 资源,可以将核心线程数设置为 N (CPU 核心数) + 1,比 CPU 核心数多出来的一个线程是为了防止线程发生缺页中断,或者其它原因导致的任务暂停而带来的影响。一旦任务暂停,CPU 某个核心就会处于空闲状态,而在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间
56075607

56085608
CPU 密集型简单理解就是利用 CPU 计算能力的任务比如在内存中对大量数据进行分析
56095609

0 commit comments

Comments
 (0)