12、多线程之锁优化(上):深入了解Synchronized同步锁的优化方法你好,我是刘超。从这讲开始,我们就正式进入到第三模块——多线程性能调优。 **在并发编程中,多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。**在JDK1.5之前,Java是依靠Synchronized关键字实现锁功能来做到这点的。S...2026-01-19Java性能调优实战
13、多线程之锁优化(中):深入了解Lock同步锁的优化方法你好,我是刘超。 今天这讲我们继续来聊聊锁优化。上一讲我重点介绍了在JVM层实现的Synchronized同步锁的优化方法,除此之外,在JDK1.5之后,Java还提供了Lock同步锁。那么它有什么优势呢? 相对于需要JVM隐式获取和释放锁的Sync...2026-01-19Java性能调优实战
14、多线程之锁优化(下):使用乐观锁优化并行操作你好,我是刘超。 前两讲我们讨论了Synchronized和Lock实现的同步锁机制,这两种同步锁都属于悲观锁,是保护线程安全最直观的方式。 我们知道悲观锁在高并发的场景下,激烈的锁竞争会造成线程阻塞,大量阻塞线程会导致系统的上下文切换,增加系统的性...2026-01-19Java性能调优实战
15、多线程调优(上):哪些操作导致了上下文切换你好,我是刘超。 我们常说“实践是检验真理的唯一标准”,这句话不光在社会发展中可行,在技术学习中也同样适用。 记得我刚入职上家公司的时候,恰好赶上了一次抢购活动。这是系统重构上线后经历的第一次高并发考验,如期出现了大量超时报警,不过比我预料的要好一点...2026-01-19Java性能调优实战
16、多线程调优(下):如何优化多线程上下文切换你好,我是刘超。 通过上一讲的讲解,相信你对上下文切换已经有了一定的了解了。如果是单个线程,在 CPU 调用之后,那么它基本上是不会被调度出去的。如果可运行的线程数远大于 CPU 数量,那么操作系统最终会将某个正在运行的线程调度出来,从而使其它线程能...2026-01-19Java性能调优实战
17、并发容器的使用:识别不同场景下最优容器你好,我是刘超。 在并发编程中,我们经常会用到容器。今天我要和你分享的话题就是:在不同场景下我们该如何选择最优容器。 并发场景下的Map容器假设我们现在要给一个电商系统设计一个简单的统计商品销量TOP 10的功能。常规情况下,我们是用一个哈希表来存储...2026-01-19Java性能调优实战