2025年7月31日

Hello World背后藏着什么秘密?一行代码看懂Java的“跨平台”魔法

摘要: Java虚拟机(Java Virtual Machine,JVM)是Java生态的基石,不仅承载着“一次编写,随处运行”的核心使命,还通过即时编译优化机制,弥合抽象层与性能间的差距。字节码的通用性虽带来效率损耗,但Java虚拟机借助动态探测热点代码、分层编译策略和即时优化技术,不断弥补抽象造成的性能 阅读全文

posted @ 2025-07-31 10:47 poemyang 阅读(784) 评论(1) 推荐(1)

2025年7月30日

没有Happens-Before?你的多线程代码就是‘一锅粥’!

摘要: 内存模型与happens-before:开发者与硬件的和平条约 在前文中,提到处理器通过一些特殊指令(如 LOCK、CMPXCHG、内存屏障等)来保障多线程环境下程序的正确性。然而,这种做法仍然存在几个显著问题。 1)底层指令实现复杂且晦涩:处理器指令的细节往往难以理解,开发者需要付出大量的时间和精 阅读全文

posted @ 2025-07-30 14:46 poemyang 阅读(573) 评论(0) 推荐(0)

2025年7月29日

为什么i++不是原子操作?一个让无数并发程序崩溃的“常识”

摘要: 原子性:不可分割的操作 private int count = 0; public void test() { List<Thread> ts = new ArrayList<>(); for (int i = 0; i < 100; i++) { Thread t = new Thread(() 阅读全文

posted @ 2025-07-29 16:01 poemyang 阅读(1211) 评论(0) 推荐(0)

2025年7月28日

我的代码出现幻觉?说好的a = 1; x = b,怎么成了x = b; a = 1?

摘要: 有序性:代码执行的幻觉 前面讲到通过缓存一致性协议,来保障共享变量的可见性。那么是否还有其他情况,导致对共享变量操作不符合预期结果。可以看下面的代码: private int a, b; private int x, y; public void test() { Thread t1 = new T 阅读全文

posted @ 2025-07-28 15:14 poemyang 阅读(675) 评论(0) 推荐(0)

2025年7月25日

我的代码背叛了我?为什么 a=1, b=2,最后x和y都等于0?

摘要: 随着多核架构的普及,并发编程已成为开发者不可或缺的核心技能。在学习过程中,开发者常会遇到这样的困惑:正确编写的单线程代码,为何在并发环境下可能瞬间失效?看似有序的语句执行后,为何结果却混乱不堪?这些问题,都指向了编程领域的一个关键课题——内存模型。 本文以Java语言为例,剖析共享数据在并发环境中的 阅读全文

posted @ 2025-07-25 15:08 poemyang 阅读(826) 评论(0) 推荐(0)

书本大纲:从芯片、分布式到云计算AI时代

摘要: 并发编程艺术 内存模型——连接代码与硬件的契约 以可见性、有序性、原子性为基础,通过happens - before规则和volatile/synchronized同步机制,探讨处理器优化与并发安全的关系,介绍多线程程序底层运行逻辑。 并发原语——在混沌中建立秩序 对比Java与Golang并发哲学 阅读全文

posted @ 2025-07-25 11:23 poemyang 阅读(392) 评论(0) 推荐(0)

2025年7月24日

书本介绍:技术札纪——有限硬件与无限计算的权衡艺术

摘要: 在当前技术飞速发展的时代,开发者面临着一个看似无法调和的难题:一边是有限的硬件与资源,另一边是无限增长的计算与业务需求。如何在秩序、效率和弹性之间做出明智的权衡,不仅是技术的考验,更是一门决策的艺术。本书,便是对这门艺术的思考与记录。 阅读全文

posted @ 2025-07-24 10:50 poemyang 阅读(582) 评论(0) 推荐(0)

导航