线程和进程
进程是应用,线程是插件
- 进程:是资源分配的最小单位,就是一个程序
- 线程:是进程的一个实体,是cpu 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时被称为轻量级进程。
- 联系:多个线程共享父类进程的堆和方法区资源,但每个线程有自己的程序计数器,虚拟机栈,本地方法栈,所以系统在产生一个线程,或是各个线程之间作切换工作时,负担要比进程小得多,也正因如此,线程也称为轻量级进程。
线程状态
Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态。
- 运行状态:
- 新生 NEW
- 就绪
- 运行 RUNNABLE
- 死亡 阻塞
- TERMINATED 终止 == 死亡
package com.company.demo.test;
public class Demo10_state {
public static void main(String[] args) {
// 里面写的是run方法,使得线程能维持一段时间
Thread thread = new Thread(() -> {
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("**************");
});
System.out.println(thread.getState());//NEW
thread.start();
System.out.println(thread.getState()); //RUNNABLE
while (thread.getState() != Thread.State.TERMINATED) {
try {
thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程状态:"+thread.getState());
}
System.out.println("**************");
System.out.println(thread.getState());
}
}