1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-28 12:22:17 +08:00

Compare commits

...

6 Commits

Author SHA1 Message Date
Guide
8adefc8b20
Merge pull request #2510 from Samsara1994/patch-3
文档修改,去除多余字
2024-10-24 21:05:33 +08:00
Samsara1994
8a409d9e9b
文档修改,去除多余字 2024-10-23 15:10:55 +08:00
Guide
7adc41ebce
Merge pull request #2509 from kixuan/main
Fix a typo.
2024-10-22 20:08:33 +08:00
kixuan
91fca78e22 Fix a typo. 2024-10-22 15:57:19 +08:00
Guide
03cd88aea6
Merge pull request #2508 from cxhello/patch-1
Update redis-questions-01.md
2024-10-21 13:27:02 +08:00
cxhello
dfbadac192
Update redis-questions-01.md 2024-10-21 09:33:45 +08:00
3 changed files with 3 additions and 3 deletions

View File

@ -543,7 +543,7 @@ Redis 持久化机制RDB 持久化、AOF 持久化、RDB 和 AOF 的混合持
**Redis 基于 Reactor 模式设计开发了一套高效的事件处理模型** Netty 的线程模型也基于 Reactor 模式Reactor 模式不愧是高性能 IO 的基石),这套事件处理模型对应的是 Redis 中的文件事件处理器file event handler。由于文件事件处理器file event handler是单线程方式运行的所以我们一般都说 Redis 是单线程模型。
《Redis 设计与实现》有一段话是如是介绍文件事件处理器的,我觉得写得挺不错。
《Redis 设计与实现》有一段话是这样介绍文件事件处理器的,我觉得写得挺不错。
> Redis 基于 Reactor 模式开发了自己的网络事件处理器这个处理器被称为文件事件处理器file event handler
>

View File

@ -99,7 +99,7 @@ UA 是一个特殊字符串头,服务器依次可以识别出客户使用的
abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXZY0123456789
之前说过,兑换码要求可能简洁,那么设计时就需要考虑兑换码的字符数,假设上限为 12 位,而字符空间有 60 位,那么可以表示的空间范围为 60^12=130606940160000000000000(也就是可以 12 位的兑换码可以生成天量,应该够运营同学挥霍了),转换成 2 进制:
之前说过,兑换码要求可能简洁,那么设计时就需要考虑兑换码的字符数,假设上限为 12 位,而字符空间有 60 位,那么可以表示的空间范围为 60^12=130606940160000000000000(也就是可以 12 位的兑换码可以生成天量,应该够运营同学挥霍了),转换成 2 进制:
1001000100000000101110011001101101110011000000000000000000000(61 位)

View File

@ -326,7 +326,7 @@ Tomcat 这四个自定义的类加载器对应的目录如下:
拿 Spring 这个例子来说,当 Spring 需要加载业务类的时候,它不是用自己的类加载器,而是用当前线程的上下文类加载器。还记得我上面说的吗?每个 Web 应用都会创建一个单独的 `WebAppClassLoader`,并在启动 Web 应用的线程里设置线程线程上下文类加载器为 `WebAppClassLoader`。这样就可以让高层的类加载器(`SharedClassLoader`)借助子类加载器( `WebAppClassLoader`)来加载业务类,破坏了 Java 的类加载委托机制,让应用逆向使用类加载器。
线程线程上下文类加载器的原理是将一个类加载器保存在线程私有数据里,跟线程绑定,然后在需要的时候取出来使用。这个类加载器通常是由应用程序或者容器(如 Tomcat设置的。
线程上下文类加载器的原理是将一个类加载器保存在线程私有数据里,跟线程绑定,然后在需要的时候取出来使用。这个类加载器通常是由应用程序或者容器(如 Tomcat设置的。
`Java.lang.Thread` 中的`getContextClassLoader()``setContextClassLoader(ClassLoader cl)`分别用来获取和设置线程的上下文类加载器。如果没有通过`setContextClassLoader(ClassLoader cl)`进行设置的话,线程将继承其父线程的上下文类加载器。