根据自己学的知识加上从各个网站上收集的资料分享一下关于java高并发编程的知识点。对于代码示例会以Maven工程的形式分享到个人的GitHub上面。
首先介绍一下这个系列的东西是什么,这个系列自己总结的东西比较多,主要参考的内容是《Java高并发编程详解》这本书,当然也结合了很多的其他书籍,以及网站。现在多元化的学习途径,导致的问题就是没有一个系列的教程来讲解关于某一个点的详细的内容。通过这种系列分享的形式将自己的能力进一步的提升。
本系列主要有29篇的内容,从最基础的线程入门到高级的线程设计模式。通过详细的代码示例加上图表示例希望可以对大家的能力提升有一定的帮助。
线程的初步
对于所有的操作系统来说几乎都是支持多个任务的同时执行的,在计算机中,每执行一个任务就存在一个进程,每一个进程中又有很多的线程在协调工作。例如下图
我们看到在Windows10操作系统中默认就启动了很多的进程来支持我们计算机的运行。
在Java中线程是程序运行的一个途径,在Java虚拟机中除了有多线程共享的方法区、堆内存等资源,每个线程中还有属于自己的程序计数器、虚拟机栈等资源。而对于Java虚拟机本省来说就是一个进程。在运行Java虚拟机的时候本省也会附带的创建很多的线程。可以通过在JDK的bin路径下面找到对应的虚拟机工具jvisualvm 通过JDK自带的虚拟机工具来查看,如下图
</