现在的位置: 首页 > 编程语言 > 正文

Java线程基础知识

2020年02月03日 编程语言 ⁄ 共 773字 ⁄ 字号 评论关闭

  Java线程基础知识

  1. 线程,是计算机操作系统的一个概念,是程序执行流的最小单位,是操作系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有少量运行必不可少的资源,除此之外与其他线程共享计算机软硬件资源。

  a) 计算机的cpu的一个核心,同一时刻只能做一件事,这样我们在编辑文档的同时就不能听音乐。为了解决这个问题,我们引入进程的概念,进程是程序运行的实体,可以理解为浏览器就是一个进程,word文档也是一个进程,根据我们使用计算机的具体情况来调度进程,让操作系统快速切换进程,多个程序“看起来在同时运行”。

  b) 进程解决了多个进程(程序的实体)并行的问题,但是一个程序中也可能需要同时处理多个任务,cpu必须要完成当前任务才能进行下一个任务,等待的时间也会降低人机交互体验。多线程就是:同一个程序下同时完成多个工作(本质上cpu并不能同时做多件事,只是频繁地切换任务)。

  c) 线程本身不能单独运行,必须放在进程中运行。

  d) 多进程解决的是同一电脑下运行多个程序的问题。多线程解决的是同一程序下进行多个任务的问题。Java支持多线程。

  2. Java的线程模型

  a) 新建状态:当一个线程被创建之后,就处于新建状态,此时不能运行和调度。

  b) 就绪状态:

  新建状态的线程调用start(),将分配计算机资源,这就进入了就绪状态。

  阻塞状态的线程接触阻塞之后,进入就绪状态。

  c) 运行状态:处于就绪状态的cpu,获得了cpu的运行资源,该线程就进入了运行状态。

  d) 阻塞状态:一个正在运行的线程,因为一些原因让出cpu资源,暂时停止,就进入了阻塞状态。

  e) 终止状态:

  正常终止:程序运行完毕终止。

  强制终止:stop、destroy System.exit(0)。

  异常终止:当线程执行中产生异常,线程会终止。

抱歉!评论已关闭.