作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【程序员高手之路】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊:shuhao-99999。
目录
前言
架构师需要了解进程与线程的关系,为多线程的探索打下基础
了解CPU:计算机的中央处理器,一般为多核(即:多个同样功能的设备)。认同一个事实:单核CPU,在某个特定的时间点(微观时间上),只能处理一个线程。
一、进程
1.定义
系统进行资源分配和调度的独立单位。
2.如何查看进程
任务管理器中有进程可以查看,可以看到一个360极速浏览器有10个进程
注意:这里列的是进程,而不是线程,也不是打开了10个网页,后面会讲到
二、线程
1.定义
是CPU调度分配的基本单位,它被包含在进程之中,是进程中的实际运作单位。
2.如何查看系统线程
可以从任务管理器的性能打开资源监视器查看线程数量:
由上图可知,Windows系统总线程数是3000多个!CPU轮流调度这些线程,使得程序正常运行。
由此可见,CPU是电脑最核心的部分,性能越好,电脑速度越快,也就是通常说的“不卡”!
3.如何查看java线程
上面是查看系统线程,那么开发人员怎么查看java线程呢?
我们安装JDK后,在%JAVA_HOME%in路径下面有几个工具:jconsole.exe、jvisualvm.exe等可以查看线程。
下图所示是用jconsole.exe工具查看线程,除此之外,还可以查看堆、类、CPU占用率等信息:
三、线程与进程关系
进程是资源分配的最小单位,线程是CPU调度的最小单位;
线程是组成进程的最小单位,一个进程可以有1个线程,也可以有多个线程(多线程)