文章目录
- 1.1 上下文切换
-
- 1.1.1 多线程一定快吗?
- 1.1.2 测试上下文切换次数和时长
- 1.1.3 如何减少上下文切换
- 1.1.4 减少上下文切换实战
- 1.2 死锁
- 1.3 资源限制的挑战
- 1.4 本章小结
声明:
本博客是本人在学习《Java 并发编程的艺术》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。
本博客已标明出处,如有侵权请告知,马上删除。
并发编程的目的是为了让程序运行得更快,但是,并不是启动更多的线程就能让程序最大限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题,本章会介绍几种并发编程的挑战以及解决方案。
1.1 上下文切换
即使是单核处理器也支持多线程执行代码,CPU 通过给每个线程分配 CPU 时间片来实现这个机制。时间片是 CPU 分配给各个线程的时间,因为时间片非常短,所以 CPU 通过不停地切换线程执行,