1. 什么是线程
进程概念:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
线程概念:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。
程序计数器:是一块内存区域,用来记录线程当前要执行的指令地址。
小知识:
为何程序计数器线程私有:我们已知线程是占用CPU执行的基本单位,而CPU一般是使用时间片轮转方式让线程轮询占用。
所以当前线程CPU时间片用完后,要让出CPU,等下次轮到自己的时候继续执行。程序计数器就是为了记录该线程让出CPU
时的执行地址,待再次分配到时间片时线程就可以从自己私有的计数器指定地址继续执行。
栈:每个线程都有自己私有的栈资源,用于存储该线程的局部变量。除局部变量外,栈还用来存放线程的调用栈帧。
堆:是一个进程中最大的一块内存,在进程创建时分配,堆里面主要存放使用new操作创建的对象实例。
方法区:用来存放JVM加载的类、常量及静态变量等信息。
线程共享:堆、方法区。 线程私有:程序技术器、栈。