线程概述
线程相关概念
进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.
可以把进程简单的理解为正在操作系统中运行的一个程序.
线程
线程(thread)是进程的一个执行单元.
一个线程就是进程中一个单一顺序的控制流, 进程的一个执行分支
进程是线程的容器,一个进程至少有一个线程.一个进程中也可以有多个线程.
在操作系统中是以进程为单位分配资源,如虚拟存储空间,文件描述符等. 每个线程都有各自的线程栈,自己的寄存器环境,自己的线程本地存储.
主线程与子线程
JVM 启动时会创建一个主线程,该主线程负责执行 main 方法 . 主线程就是运行 main 方法的线程
Java 中的线程不孤立的,线程之间存在一些联系. 如果在 A 线程中创建了 B 线程, 称 B 线程为 A 线程的子线程, 相应的 A 线程就是 B 线程的父线程
并发可以提高以事物的处理效率, 即一段时间内可以处理或者完成更多的事情.
并行是一种更为严格,理想的并发
从硬件角度来说, 如果单核 CPU,一个处理器一次只能执行一个线程的情况下,处理器可以使用时间片轮转技术 ,可以让 CPU 快速的在各个线程之间进行切换,
对于用户来说,感觉是三个线程在同时执行.
如果是多核心 CPU,可以为不同的线程分配不同的 CPU 内核.