16、多线程调优(下):如何优化多线程上下文切换

你好,我是刘超。 通过上一讲的讲解,相信你对上下文切换已经有了一定的了解了。如果是单个线程,在 CPU 调用之后,那么它基本上是不会被调度出去的。如果可运行的线程数远大于 CPU 数量,那么操作系统最终会将某个正在运行的线程调度出来,从而使其它线程能...

Java性能调优实战

15、多线程调优(上):哪些操作导致了上下文切换

你好,我是刘超。 我们常说“实践是检验真理的唯一标准”,这句话不光在社会发展中可行,在技术学习中也同样适用。 记得我刚入职上家公司的时候,恰好赶上了一次抢购活动。这是系统重构上线后经历的第一次高并发考验,如期出现了大量超时报警,不过比我预料的要好一点...

Java性能调优实战

14、多线程之锁优化(下):使用乐观锁优化并行操作

你好,我是刘超。 前两讲我们讨论了Synchronized和Lock实现的同步锁机制,这两种同步锁都属于悲观锁,是保护线程安全最直观的方式。 我们知道悲观锁在高并发的场景下,激烈的锁竞争会造成线程阻塞,大量阻塞线程会导致系统的上下文切换,增加系统的性...

Java性能调优实战

13、多线程之锁优化(中):深入了解Lock同步锁的优化方法

你好,我是刘超。 今天这讲我们继续来聊聊锁优化。上一讲我重点介绍了在JVM层实现的Synchronized同步锁的优化方法,除此之外,在JDK1.5之后,Java还提供了Lock同步锁。那么它有什么优势呢? 相对于需要JVM隐式获取和释放锁的Sync...

Java性能调优实战

12、多线程之锁优化(上):深入了解Synchronized同步锁的优化方法

你好,我是刘超。从这讲开始,我们就正式进入到第三模块——多线程性能调优。 **在并发编程中,多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。**在JDK1.5之前,Java是依靠Synchronized关键字实现锁功能来做到这点的。S...

Java性能调优实战

11、答疑课堂:深入了解NIO的优化实现原理

你好,我是刘超。专栏上线已经有20多天的时间了,首先要感谢各位同学的积极留言,交流的过程使我也收获良好。 综合查看完近期的留言以后,我的第一篇答疑课堂就顺势诞生了。我将继续讲解I/O优化,对大家在08讲中提到的内容做重点补充,并延伸一些有关...

Java性能调优实战

10、网络通信优化之通信协议:如何优化RPC网络通信

你好,我是刘超。今天我将带你了解下服务间的网络通信优化。 上一讲中,我提到了微服务框架,其中SpringCloud和Dubbo的使用最为广泛,行业内也一直存在着对两者的比较,很多技术人会为这两个框架哪个更好而争辩。 我记得我们部门在搭建微服务框架时,...

Java性能调优实战

9、网络通信优化之序列化:避免使用Java序列化

你好,我是刘超。 当前大部分后端服务都是基于微服务架构实现的。服务按照业务划分被拆分,实现了服务的解耦,但同时也带来了新的问题,不同业务之间通信需要通过接口实现调用。两个服务之间要共享一个数据对象,就需要从对象转换成二进制流,通过网络传输,传送到对方...

Java性能调优实战

8、网络通信优化之I、O模型:如何解决高并发下I、O瓶颈

你好,我是刘超。 提到Java I/O,相信你一定不陌生。你可能使用I/O操作读写文件,也可能使用它实现Socket的信息传输…这些都是我们在系统中最常遇到的和I/O有关的操作。 我们都知道,I/O的速度要比内...

Java性能调优实战

7、深入浅出HashMap的设计与优化

你好,我是刘超。 在上一讲中我提到过Collection接口,那么在Java容器类中,除了这个接口之外,还定义了一个很重要的Map接口,主要用来存储键值对数据。 HashMap作为我们日常使用最频繁的容器之一,相信你一定不陌生了。今天我们就从Hash...

Java性能调优实战
17475767778268