Java 提供了多线程编程的内置支持,让我们可以轻松开发多线程应用。
Java 中我们最为熟悉的线程就是 main 线程——主线程。
一个进程可以并发多个线程,每条线程并行执行不同的任务。线程是进程的基本单位,是一个单一顺序的控制流,一个进程一直运行,直到所有的“非守护线程”都结束运行后才能结束。Java 中常见的守护线程有:垃圾回收线程、
这里简要述说以下并发和并行的区别。
并发:同一时间段内有多个任务在运行
并行:同一时间点上有多个任务同时在运行
多线程可以帮助我们高效地执行任务,合理利用 CPU 资源,充分地发挥多核 CPU 的性能。但是多线程也并不总是能够让程序高效运行的,多线程切换带来的开销、线程死锁、线程异常等等问题,都会使得多线程开发较单线程开发更麻烦。因此,有必要学习 Java 多线程的相关知识,从而提高开发效率。
今天小编就给大家带来这本《Java多线程编程核心技术》,涵盖的知识点一目了然,希望能以此书为你们拓展出更深入,更全面的线程思路,话不多说了,给大家展示内容吧!
本书适合所有Java程序员阅读,尤其适合以下读者:
本章中主要介绍Thread类中的核心方法。Thread类的核心方法较多,读者应该着重掌握如下关键技术点:
上面的5点也是本章学习的重点与思路,掌握这些内容是学习Java多线程的必经之路
本章主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题。多线程中的同步问题是学习多线程的重中之重,这个技术在其他的编程语言中也涉及,如C++或C#。
本章应该着重掌握如下技术点:
关键字volatile与synchronized的区别及使用情况
线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体。线程间的通信就是成为整体的必用方案之一,可以说,使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督。在本章中需要着重掌握的技术点如下:
ThreadLocal类的使用
本章将要介绍使用Java5中Lock对象也能实现同步的效果,而且在使用上更加方便。
本章着重掌握如下2个知识点:
ReentrantReadWriteLock类的使用
定时/计划功能在移动开发领域使用较多,比如Android技术。定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联的。在本章节着重掌握如下技术点:
如何实现按指定周期执行任务
本章的知识点非常重要,通过单例模式与多线程技术相结合,在这个过程中能发现很多以前从未考虑过的情况,一些不良的程序设计方法如果应用在商业项目中,将会遇到非常大的麻烦。本章的案例也将充分说明,线程与某些技术相结合时要考虑的事情有很多。在学习本章时只需要考虑一件事情,那就是:如何使单例模式遇到多线程是安全的、正确的。
在标准的23个设计模式中,单例设计模式在应用中是比较常见的。但在常规的该模式教学资料介绍中,多数并没有结合多线程技术作为参考,这就造成在使用多线程技术的单例模式时会出现一些意想不到的情况,这样的代码如果在生产环境中出现异常,有可能造成灾难性的后果。本章将介绍单例模式结合多线程技术在使用时的相关知识。
本章是本书的最后一章,在本章中将对前面几章遗漏的知识点进行补充,丰富多线程案例的完整性。在开发此类应用中,这些案例能起到优化性能的作用,至少在遇到某些情况时会回想起这些案例的初衷与解决办法。
本章应该掌握如下知识点:
如何处理线程的异常
接下来是小编为大家整理的一些2020高频并发编程面试题库,希望能对各位大哥们起点作用!
Synchronized相关问题
可重入锁ReentrantLock及其他显式锁相关问题
Java线程池相关问题
Java内存模型相关问题
既然volatile能够保证线程间的变量可见性,是不是就意味着基于volatile变量的运算就是并发安全的?