<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ThinkerQAQ</title><description>Published and maintained writing, ordered by the most recent update.</description><link>https://thinkerqaq.com/</link><language>en</language><item><title>Concurrency Programming (1.5): The Operating System Layer — Threads, Schedulers, and Runtime Scheduling</title><link>https://thinkerqaq.com/en/articles/concurrency-series-01-5-thread-scheduling/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-01-5-thread-scheduling/</guid><description>Following Java platform and virtual threads, Go G-M-P, and CPython threads from their runtime representations to OS threads and ultimately CPU execution.</description><pubDate>Sun, 04 Oct 2026 07:08:00 GMT</pubDate><category>Concurrency</category><category>Operating System</category><category>Thread</category><category>Scheduler</category><category>JVM</category><category>Go Runtime</category><category>CPython</category></item><item><title>Concurrency Programming (1): Start with the Hardware — From count++ to Atomicity, Visibility, and Ordering</title><link>https://thinkerqaq.com/en/articles/concurrency-series-01-hardware/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-01-hardware/</guid><description>Starting from the von Neumann architecture and instruction execution, this article follows count++ down to the hardware-level problems of atomicity, visibility, and ordering.</description><pubDate>Mon, 07 Sep 2026 03:08:48 GMT</pubDate><category>Concurrency</category><category>CPU</category><category>Memory Model</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Concurrency Programming (2): Language Memory Models — Rules Programmers Can Rely On</title><link>https://thinkerqaq.com/en/articles/concurrency-series-02-language-memory-model/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-02-language-memory-model/</guid><description>Moves from hardware memory models back to the language layer: why languages need their own concurrency semantics, and what Java, Go, and CPython guarantee to concurrent programs.</description><pubDate>Mon, 07 Sep 2026 07:13:00 GMT</pubDate><category>Concurrency</category><category>Memory Model</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Concurrency Programming (0): The Problem Space and Scope</title><link>https://thinkerqaq.com/en/articles/concurrency-series-00/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-00/</guid><description>Defines the scope as concurrency within a single process on a single machine, then connects shared variables, shared memory, message passing, language concurrency semantics, and hardware implementation.</description><pubDate>Sun, 06 Sep 2026 09:58:00 GMT</pubDate><category>Concurrency</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Concurrency Programming (4): How Mutexes Are Implemented — From Runtime to CPU</title><link>https://thinkerqaq.com/en/articles/concurrency-series-04-mutex-implementation/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-04-mutex-implementation/</guid><description>Traces the actual implementation paths of Java synchronized, Go sync.Mutex, and CPython threading.Lock to show how mutexes rely on atomic operations, memory ordering, and waiting and wake-up mechanisms.</description><pubDate>Tue, 08 Sep 2026 15:11:56 GMT</pubDate><category>Concurrency</category><category>Mutex</category><category>JVM</category><category>Go Runtime</category><category>CPython</category></item><item><title>Concurrency Programming (8): Read-Write Locks — From Language Rules to the CPU</title><link>https://thinkerqaq.com/en/articles/concurrency-series-08-read-write-lock/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-08-read-write-lock/</guid><description>Uses the same counter and counter + ready examples to trace read-write locks from Java language-level rules through the JDK, HotSpot, and x86-64, explaining Atomicity, Visibility, Ordering, and the boundary with Mutex.</description><pubDate>Fri, 11 Sep 2026 07:30:00 GMT</pubDate><category>Concurrency</category><category>Read-Write Lock</category><category>RWMutex</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Concurrency Programming (7): volatile — From Language Semantics to the CPU</title><link>https://thinkerqaq.com/en/articles/concurrency-series-07-volatile/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-07-volatile/</guid><description>Uses the counter + ready example to trace Java volatile from the Java Memory Model through HotSpot to x86-64, showing how visibility and ordering are defined and implemented, and how volatile differs from atomics and mutexes.</description><pubDate>Tue, 08 Sep 2026 15:41:00 GMT</pubDate><category>Concurrency</category><category>volatile</category><category>Java</category><category>Go</category><category>Python</category><category>Memory Model</category></item><item><title>Concurrency Programming (5): Atomics — Atomicity, Visibility, and Ordering at the Language Level</title><link>https://thinkerqaq.com/en/articles/concurrency-series-05-atomic-cas/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-05-atomic-cas/</guid><description>Continues with counter and ready to explain the language-level rules behind Java AtomicInteger, Go sync/atomic, and CPython&apos;s application-level Atomic boundary.</description><pubDate>Tue, 08 Sep 2026 15:30:00 GMT</pubDate><category>Concurrency</category><category>Atomic</category><category>CAS</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Concurrency Programming (3): Mutexes — Atomicity, Visibility, and Ordering at the Language Level</title><link>https://thinkerqaq.com/en/articles/concurrency-series-03-mutex/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-03-mutex/</guid><description>Continues with counter++ to explain how mutexes provide atomicity, visibility, and ordering, then compares Java synchronized, Go sync.Mutex, and CPython threading.Lock.</description><pubDate>Tue, 08 Sep 2026 10:32:54 GMT</pubDate><category>Concurrency</category><category>Mutex</category><category>Java</category><category>Go</category><category>Python</category></item><item><title>Why I Still Write a Blog in the Age of Social Media</title><link>https://thinkerqaq.com/en/articles/personal-blog-series-00-why-blog/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/personal-blog-series-00-why-blog/</guid><description>In an age of mature content platforms and video media, I revisit why I still write a blog: to move from notes to articles, think more deeply through writing, and preserve how my understanding changes over time.</description><pubDate>Thu, 17 Sep 2026 01:00:00 GMT</pubDate><category>Blogging</category><category>Writing</category><category>Personal Blog</category></item><item><title>Concurrency Programming (6): How Atomic Operations Are Implemented — From Runtime to CPU</title><link>https://thinkerqaq.com/en/articles/concurrency-series-06-atomic-implementation/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/concurrency-series-06-atomic-implementation/</guid><description>Traces the implementation paths of Java AtomicInteger, Go sync/atomic, and CPython&apos;s internal atomic operations to show how atomic RMW, CAS, and memory ordering reach the CPU.</description><pubDate>Tue, 08 Sep 2026 15:36:00 GMT</pubDate><category>Concurrency</category><category>Atomic</category><category>CAS</category><category>Java</category><category>Go</category><category>CPython</category></item><item><title>How to Plan the Technical Evolution of a Software System</title><link>https://thinkerqaq.com/en/articles/software-system-technical-planning-methodology/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/software-system-technical-planning-methodology/</guid><description>Starting from the scope and value of technical planning, this article outlines a practical method for analyzing the current state, defining a target state, identifying problems, selecting solutions, and driving execution.</description><pubDate>Sun, 23 Jun 2024 14:22:29 GMT</pubDate><category>System Design</category><category>Technical Planning</category><category>Architecture Design</category></item><item><title>What I Think About When I&apos;m Anxious: Life and Planning</title><link>https://thinkerqaq.com/en/articles/how-i-think-about-life-when-anxious/</link><guid isPermaLink="true">https://thinkerqaq.com/en/articles/how-i-think-about-life-when-anxious/</guid><description>Starting from anxiety and the idea of &apos;standing firm at thirty,&apos; this article reflects on how to understand life, what shapes it, and how to spend limited time on what truly matters.</description><pubDate>Sat, 15 Jun 2024 08:50:52 GMT</pubDate><category>Reflection</category><category>Life</category><category>Life Planning</category></item></channel></rss>