404
+PAGE NOT FOUND
+这张地图上,没有这一页。
+链接可能已经移动,或者它从未存在过。你可以返回首页继续探索。
+ 返回首页 → +diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml
new file mode 100644
index 0000000..f042abd
--- /dev/null
+++ b/.github/workflows/deploy-pages.yml
@@ -0,0 +1,48 @@
+name: Deploy blog to GitHub Pages
+
+on:
+ push:
+ branches: [master]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Configure GitHub Pages
+ id: pages
+ uses: actions/configure-pages@v5
+
+ - name: Build with Jekyll
+ uses: actions/jekyll-build-pages@v1
+ with:
+ source: ./
+ destination: ./_site
+
+ - name: Upload GitHub Pages artifact
+ uses: actions/upload-pages-artifact@v4
+ with:
+ path: ./_site
+
+ deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.gitignore b/.gitignore
index 9444158..f01ac3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,8 @@
.cursorrules
actionlint
.claude/
-.cursor
\ No newline at end of file
+.cursor
+_site/
+.jekyll-cache/
+.jekyll-metadata
+.sass-cache/
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..bd2efd6
--- /dev/null
+++ b/404.html
@@ -0,0 +1,12 @@
+---
+layout: default
+title: 页面没有找到
+permalink: /404.html
+---
+ 404 PAGE NOT FOUND 链接可能已经移动,或者它从未存在过。你可以返回首页继续探索。这张地图上,没有这一页。
+
{{ page.kicker }}
+{{ page.description }}
+{{ article.content | strip_html | strip_newlines | normalize_whitespace | truncate: 120 }}
+没有找到匹配的文章。
+ABOUT THIS ARCHIVE
+一名喜欢追问原理的程序员,也是一名长期记录者。
+最初,我只是把读书时整理的思维导图截图发布到简书;收到许多读者留言后,便创建了这个项目,将完整笔记持续沉淀下来。
+后来内容逐渐越过了 Java 的边界,从编程与源码分析,延伸到 AI、读书、观影、游戏和生活随笔。Thinking_in_Java_MindMapping 这个名字已经无法概括这里的一切,但它保留了整个知识库最初的起点。
Think deeply. Learn continuously. Write things down.+
我仍然关注 Java 生态、分布式系统与底层原理,也在持续探索 AI Agent、MCP 和人与智能工具协作的新方式。技术之外,我同样认真对待书、电影、游戏和日常生活。
+THE COMPLETE ARCHIVE
+从最近写下的内容开始,沿着时间回看这份持续生长的知识档案。
+没有找到匹配的文章。
+PERSONAL KNOWLEDGE ARCHIVE
+在代码、书影音与生活之间持续探索。这里存放技术原理、阅读痕迹,以及那些值得被认真记住的瞬间。
+THINK DEEPLY
LEARN CONTINUOUSLY
EXPLORE BY TOPIC
+知识并不生长在孤岛上。技术、故事和生活经验,总会在某处彼此照亮。
+{{ category.kicker }}
+{{ category.description }}
+LATEST WRITING
+{{ article.content | strip_html | strip_newlines | normalize_whitespace | truncate: 140 }}
+++随心写,长期写。
+
内容可以繁杂,思考始终贵在坚持。
这个博客起源于一次《Java 编程思想》的阅读,后来逐渐越过技术的边界,成为一份持续生长的个人知识档案。
+| OS | CentOS 6.7 x86_64 |
| CPU | Intel Xeon X5675, 12M Cache 3.06 GHz, 6 Cores 12 Threads |
| 内存 | 96GB |
| JDK | java version 1.8.0_91, Java HotSpot(TM) 64-Bit Server VM |
Timer optimized for approximated I/O timeout scheduling.
+Timer optimized for approximated I/O timeout scheduling.
TimerTask on time. HashedWheelTimer, on every tick, will
-check if there are any TimerTasks behind the schedule and execute
+TimerTask on time. HashedWheelTimer, on every tick, will
+check if there are any TimerTasks behind the schedule and execute
them.
You can increase or decrease the accuracy of the execution timing by @@ -56,18 +56,18 @@ network applications, I/O timeout does not need to be accurate. Therefore, the default tick duration is 100 milliseconds and you will not need to try different configurations in most cases.
HashedWheelTimer maintains a data structure called 'wheel'.
-To put simply, a wheel is a hash table of TimerTasks whose hash
+HashedWheelTimer maintains a data structure called 'wheel'.
+To put simply, a wheel is a hash table of TimerTasks whose hash
function is 'dead line of the task'. The default number of ticks per wheel
(i.e. the size of the wheel) is 512. You could specify a larger value
if you are going to schedule a lot of timeouts.
HashedWheelTimer creates a new thread whenever it is instantiated and
+HashedWheelTimer creates a new thread whenever it is instantiated and
started. Therefore, you should make sure to create only one instance and
share it across your application. One of the common mistakes, that makes
your application unresponsive, is to create a new instance for every connection.
HashedWheelTimer is based on
+HashedWheelTimer is based on
George Varghese and
Tony Lauck's paper,
'Hashed
@@ -488,4 +488,4 @@ private void transferTimeoutsToBuckets() {
# 参考链接
- [HashedWheelTimer 使用及源码分析](https://www.javadoop.com/post/HashedWheelTimer)
-- [HashedWheelTimer 时间轮原理分析](https://albenw.github.io/posts/ec8df8c/)
\ No newline at end of file
+- [HashedWheelTimer 时间轮原理分析](https://albenw.github.io/posts/ec8df8c/)
diff --git "a/\347\274\226\347\250\213/\345\205\266\344\273\226/LSM.md" "b/\347\274\226\347\250\213/\345\205\266\344\273\226/LSM.md"
index 8ab705c..5490f3b 100644
--- "a/\347\274\226\347\250\213/\345\205\266\344\273\226/LSM.md"
+++ "b/\347\274\226\347\250\213/\345\205\266\344\273\226/LSM.md"
@@ -1,3 +1,6 @@
+---
+date: 2024-01-24
+---
# 是什么
@@ -47,4 +50,4 @@ MemTable 达到一定大小后,会转换为 Immutable MemTable。Immutable Mem
- [LSM Tree
](https://hujianxin.github.io/blog/posts/lsm/)
- [LSM 树详解
-](https://zhuanlan.zhihu.com/p/181498475)
\ No newline at end of file
+](https://zhuanlan.zhihu.com/p/181498475)
diff --git "a/\347\274\226\347\250\213/\345\205\266\344\273\226/Mac mini \345\256\266\345\272\255\347\275\221\347\273\234\350\256\276\347\275\256\345\206\205\347\275\221\347\251\277\351\200\217.md" "b/\347\274\226\347\250\213/\345\205\266\344\273\226/Mac mini \345\256\266\345\272\255\347\275\221\347\273\234\350\256\276\347\275\256\345\206\205\347\275\221\347\251\277\351\200\217.md"
index 2c9984f..163833d 100644
--- "a/\347\274\226\347\250\213/\345\205\266\344\273\226/Mac mini \345\256\266\345\272\255\347\275\221\347\273\234\350\256\276\347\275\256\345\206\205\347\275\221\347\251\277\351\200\217.md"
+++ "b/\347\274\226\347\250\213/\345\205\266\344\273\226/Mac mini \345\256\266\345\272\255\347\275\221\347\273\234\350\256\276\347\275\256\345\206\205\347\275\221\347\251\277\351\200\217.md"
@@ -1,5 +1,6 @@
---
date: 2025-05-14
+---
# 前言
@@ -156,4 +157,4 @@ aliyun-ddns 的 github 链接:https://github.com/risfeng/aliyun-ddns-shell。
# 说明
-这样就能够通过域名在任意地点、任意网络访问家里的 mac 了,可以当成一个服务器来使用。
\ No newline at end of file
+这样就能够通过域名在任意地点、任意网络访问家里的 mac 了,可以当成一个服务器来使用。