目录
一、进程
应用程序以进程的形式运行与操作系统之上,享受操作系统提供的服务。
一个进程由程序段,数据段,进程控制块3部分组成。
a、程序段
就是代码段,是进程的程序指令在内存中的位置,包含需要执行的指令集合。
b、数据段
是进程的操作数据在内存中的位置,包含需要操作的数据集合。
c、进程控制块
包含进程的描述信息和控制信息,是进程存在的唯一标识。
二、Java程序进程
java程序都运行在JVM中。每启动一个java程序就会启动一个JVM进程,在这个JVM进程内部,java程序都是以线程来运行的,JVM找到程序的main()方法,然后运行main()方法,这样就启动的一个主线程。当main()方法结束后,主线程运行完成,JVM进程也随即退出。
三、线程
线程是进程代码段的一次顺序执行流程。一个进程中有一个或者多个线程,各个线程之间共享进程的内存空间和系统资源。
一条线程由程序计数器,栈内存,线程基本信息3部分组成。
a、程序计数器
记录线程下一条指令的代码段内存地址。
b、栈内存
指代码段中局部变量的存储空间,为线程私有。
c、线程基本信息
指线程ID,线程名称,线程状态,线程优先级等。
四、JVM进程与线程的关系
一个虚拟机JVM进程至少包含一个主线程和一个GC线程。
五、进程与线程的区别
a、一个进程由一个或多个线程组成。
b、线程是CPU调度的最小单位,进程是操作系统分配资源的最小单位。
c、进程之间是相互独立的,但一个进程中各个线程共享该进程的方法区内存,堆内存和系统资源。