Java多线程-------进程、线程基本概念

什么是进程?

顾名思义:正在进行(运行)的程序,是程序进行资源分配的基本单位

 

目前操作系统都是支持多进程,可以同时执行多个进程,通过ID对进程进行区分,PID:process ID

 

单核CPU在同一时刻,只能运行一个进程;宏观上看是并行、微观看是串行

 

什么是线程?

 

线程,又称轻量级进程。进程中的一条执行路径,也是CPU的基本调度单位。一个进程由一个或多个线程组成,彼此间完成不同的工作,同时执行,称为多线程

可以查看本机的线程

Java多线程-------进程、线程基本概念

 

举个例子: 迅雷是一个进程,当中的多个下载任务即是多个线程Java多线程-------进程、线程基本概念

Java虚拟机是一个进程,当中默认包含主线程(main),可通过代码创建多个独立的线程,与main并发执行Java多线程-------进程、线程基本概念

 

进程 和 线程的区别

1、进程是操作系统资源分配的基本单位,而线程是CPU的基本调度单位

2、一个程序运行后至少有一个进程

3、一个进程可以包含多个线程大,但是至少需要有一个线程,否则这个进程是没有意义的

4、进程间不能共享数据段地址,但同进程的线程之间可以

 

 

线程的组成部分

CPU时间片:操作系统会为每个线程分配执行时间

运行数据:(区分哪个是共享的,哪个是独立的)

  • 堆空间:存储线程需要使用的对象,多个线程可以共享堆中的对象
  • 栈空间:存储线程需要使用的局部变量,每个线程都拥有独立的栈

Java多线程-------进程、线程基本概念

 

 

线程的特点:

 

1、线程抢占式执行

  • 效率高
  • 可防止单一线程长时间独占CPU

由于每个线程都分配了时间片,所以不存在线程会一直在CPU执行