前言
架构师需要了解进程与线程的关系,为多线程的探索打下基础
了解CPU:计算机的中央处理器,一般为多核(即:多个同样功能的设备)。认同一个事实:单核CPU,在某个特定的时间点(微观时间上),只能处理一个线程。
一、进程
1.定义
系统进行资源分配和调度的独立单位。
不同的应用程序运行的过程中需要在内存中分配自己独立的运行空间,彼此之间不会相互地影响。
2.如何查看进程
任务管理器中有进程可以查看,可以看到一个360极速浏览器有10个进程
注意:这里列的是进程,而不是线程,也不是打开了10个网页,后面会讲到
二、线程
1.定义
是CPU调度分配的基本单位,它被包含在进程之中,是进程中的实际运作单位。
2.如何查看系统线程
可以从任务管理器的性能打开资源监视器查看线程数量:
由上图可知,Windows系统总线程数是3000多个!CPU轮流调度这些线程,使得程序正常运行。
由此可见,CPU是电脑最核心的部分,性能越好,电脑速度越快,也就是通常说的“不卡”!
3.如何查看java线程
上面是查看系统线程,那么开发人员怎么查看java线程呢?
我们安装JDK后,在%JAVA_HOME%\bin路径下面有几个工具:jconsole.exe、jvisualvm.exe等可以查看线程。
下图所示是用jconsole.exe工具查看线程,除此之外,还可以查看堆、类、CPU占用率等信息:
三、线程与进程关系
进程是资源分配的最小单位,线程是CPU调度的最小单位;
线程是组成进程的最小单位,一个进程可以有1个线程,也可以有多个线程(多线程)