跳到主要内容

3、线程的六大状态、基于代码实战的线程创建及六个常用方法

一、进程和线程的简介

进程的概念

1、 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位;
2、 进程中所包含的一个或多个执行单元成为线程进程还拥有一个私有的虚拟地址空间,该空间仅能被它所包含的线程访问;
3、 线程智能属于一个进程并且它智能访问该进程所拥有的资源当操作系统创建一个进程后,该进程会被申请一个名为主线程或首要线程的线程;

线程的概念:

  • 一个线程是进程的一个顺序执行流。同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行的堆栈。线程在切换时负荷小。因此,线程成为轻负荷进程。一个进程中可以有多个线程。

进程和线程的区别:

1、 地址空间:进程的各个线程,它们共享进程的地址空间,而进程有自己独立的地址空间;
2、 执行速度:线程的切换速度要比进程快的多;
3、 相互依赖上:进程是资源分配和拥有的单位,同一个进程内的线程共享进程资源;
4、 线程是处理器调度的基本单位,但进程不是;
5、 二者皆可并发执行;

线程的适用场合:

  • 适用于一个程序中需要多个任务同时执行,此时可以借助多线程来完成这个任务。

二、线程的状态:

线程的六大状态简介:

1、 NEW:线程刚创建;
2、 RUNNABLE:在JVM中正在运行的线程;
3、 BLOCKED:线程处于阻塞状态,等待监视锁,可以重新进行同步代码块中执行;
4、 WAITING:等待状态;
5、 TIMED_WAITING:调用sleep()join()wait()方法可能导致线程处于等待状态;
6、 TERMINATED:线程执行完毕,已经退出;

线程的六大状态图: