<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ThinkerQAQ</title><description>ThinkerQAQ 的个人技术博客，记录后端工程、Go、Java、并发编程、分布式系统、数据系统与软件工程实践。</description><link>https://thinkerqaq.com/</link><language>zh-CN</language><item><title>并发编程（1.5）：操作系统层——Thread、Scheduler 与 Runtime 调度</title><link>https://thinkerqaq.com/articles/concurrency-series-01-5-thread-scheduling/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-01-5-thread-scheduling/</guid><description>沿着 Java Platform/Virtual Thread、Go G-M-P 与 CPython threading.Thread 的真实调度路径，理解 Runtime 如何把执行单元交给 OS Thread，并最终由 Operating System Scheduler 调度到 CPU。</description><pubDate>Sun, 04 Oct 2026 07:08:00 GMT</pubDate><category>并发编程</category><category>Operating System</category><category>Thread</category><category>Scheduler</category><category>JVM</category><category>Go Runtime</category><category>CPython</category></item><item><title>并发编程（一）：先谈硬件——从 count++ 到原子性、可见性与有序性</title><link>https://thinkerqaq.com/articles/concurrency-series-01-hardware/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-01-hardware/</guid><description>从冯·诺依曼体系结构和指令执行过程出发，沿着 count++ 分析硬件层面的原子性、可见性与有序性问题。</description><pubDate>Mon, 07 Sep 2026 03:08:48 GMT</pubDate><category>并发编程</category><category>CPU</category><category>内存模型</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>并发编程（二）：语言内存模型——程序员可以依赖的规则</title><link>https://thinkerqaq.com/articles/concurrency-series-02-language-memory-model/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-02-language-memory-model/</guid><description>从硬件内存模型回到语言层，理解语言为什么需要定义内存模型，以及 Java、Go 与 CPython 分别为并发程序提供哪些基本保证。</description><pubDate>Mon, 07 Sep 2026 07:13:00 GMT</pubDate><category>并发编程</category><category>内存模型</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>并发编程（零）：并发问题与讨论范围</title><link>https://thinkerqaq.com/articles/concurrency-series-00/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-00/</guid><description>限定单机、单进程范围，从共享变量出发，建立共享内存、消息传递、语言并发语义与硬件实现之间的整体关系。</description><pubDate>Sun, 06 Sep 2026 09:58:00 GMT</pubDate><category>并发编程</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>并发编程（四）：互斥锁的实现——从 Runtime 到 CPU</title><link>https://thinkerqaq.com/articles/concurrency-series-04-mutex-implementation/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-04-mutex-implementation/</guid><description>沿着 Java synchronized、Go sync.Mutex 和 CPython threading.Lock 的真实实现路径，理解互斥锁如何使用原子操作、内存顺序以及等待与唤醒。</description><pubDate>Tue, 08 Sep 2026 15:11:56 GMT</pubDate><category>并发编程</category><category>Mutex</category><category>JVM</category><category>Go Runtime</category><category>CPython</category></item><item><title>并发编程（八）：读写锁——从语言规则到 CPU</title><link>https://thinkerqaq.com/articles/concurrency-series-08-read-write-lock/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-08-read-write-lock/</guid><description>沿用 counter 与 counter + ready 的例子，从 Java 读写锁规则一路看到 JDK、HotSpot 与 x86-64，理解 ReadWriteLock 如何提供原子性、可见性与有序性，以及它与 Mutex 的边界。</description><pubDate>Fri, 11 Sep 2026 07:30:00 GMT</pubDate><category>并发编程</category><category>读写锁</category><category>RWMutex</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>并发编程（七）：volatile——从语言规则到 CPU</title><link>https://thinkerqaq.com/articles/concurrency-series-07-volatile/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-07-volatile/</guid><description>沿用 counter + ready 的例子，从 Java 内存模型一路看到 HotSpot 与 x86-64，理解 volatile 如何提供可见性和有序性，以及它与 Atomic、Mutex 的边界。</description><pubDate>Tue, 08 Sep 2026 15:41:00 GMT</pubDate><category>并发编程</category><category>volatile</category><category>Java</category><category>Go</category><category>Python</category><category>Memory Model</category></item><item><title>并发编程（六）：Atomic 的实现——从 Runtime 到 CPU</title><link>https://thinkerqaq.com/articles/concurrency-series-06-atomic-implementation/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-06-atomic-implementation/</guid><description>沿着 Java AtomicInteger、Go sync/atomic 和 CPython 内部 Atomic 的真实实现路径，理解 Atomic RMW、CAS、内存顺序以及它与 Mutex 的区别。</description><pubDate>Tue, 08 Sep 2026 15:36:00 GMT</pubDate><category>并发编程</category><category>Atomic</category><category>CAS</category><category>Java</category><category>Go</category><category>CPython</category></item><item><title>并发编程（五）：Atomic——语言层的原子性、可见性与有序性</title><link>https://thinkerqaq.com/articles/concurrency-series-05-atomic-cas/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-05-atomic-cas/</guid><description>继续使用 counter 与 ready，从语言内存模型和公开 API 规则理解 Java AtomicInteger、Go sync/atomic 与 CPython 的 Atomic 语义边界。</description><pubDate>Tue, 08 Sep 2026 15:30:00 GMT</pubDate><category>并发编程</category><category>Atomic</category><category>CAS</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>并发编程（三）：互斥锁——语言层的原子性、可见性与有序性</title><link>https://thinkerqaq.com/articles/concurrency-series-03-mutex/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/concurrency-series-03-mutex/</guid><description>继续使用 counter++，理解互斥锁如何提供原子性、可见性和有序性，并比较 Java synchronized、Go sync.Mutex 与 CPython threading.Lock 的语义差异。</description><pubDate>Tue, 08 Sep 2026 10:32:54 GMT</pubDate><category>并发编程</category><category>Mutex</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>媒体时代，为什么我还要写博客</title><link>https://thinkerqaq.com/articles/personal-blog-series-00-why-blog/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/personal-blog-series-00-why-blog/</guid><description>在内容平台和视频媒介已经足够成熟的今天，重新回答我为什么还要继续写博客：从笔记走向文章，通过写作整理思考，并记录长期的认知变化。</description><pubDate>Thu, 17 Sep 2026 01:00:00 GMT</pubDate><category>博客</category><category>写作</category><category>个人博客</category></item><item><title>如何对软件系统做技术规划</title><link>https://thinkerqaq.com/articles/software-system-technical-planning-methodology/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/software-system-technical-planning-methodology/</guid><description>从技术规划的范围和价值出发，梳理现状分析、理想态设计、问题识别、方案选择与落地执行的基本方法。</description><pubDate>Sun, 23 Jun 2024 14:22:29 GMT</pubDate><category>系统设计</category><category>技术规划</category><category>架构设计</category></item><item><title>焦虑时，我在思考什么：关于人生与规划</title><link>https://thinkerqaq.com/articles/how-i-think-about-life-when-anxious/</link><guid isPermaLink="true">https://thinkerqaq.com/articles/how-i-think-about-life-when-anxious/</guid><description>从焦虑与三十而立谈起，思考如何理解人生、哪些因素影响人生，以及怎样把有限的时间投入真正重要的事情。</description><pubDate>Sat, 15 Jun 2024 08:50:52 GMT</pubDate><category>思考</category><category>人生</category><category>人生规划</category></item></channel></rss>