线程学习笔记(一)

一. 一些概念

  线程是程序执行流的最小单位。(线程是程序中一个单一的顺序控制流程)

  特点:轻型实体,独立调度和分派的基本单位(线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位),可以并发运行,共享进程的资源。

二.  生命周期图:

  

 ● 新建状态:使用new()关键字和Thread类或者其子类创建一个线程对象后,该线程对象就处于新建状态。

 ● 就绪状态:当线程对象调用了start()之后,该线程就进入了就绪状态。就绪状态的线程处于就绪队列中、要等到JVM里线程调度器调度。

 ● 运行状态:如果就绪状态的线程获取到CPU资源,就可以执行run(),此时线程处于运行状态。处于运行状态的线程,他可以变为阻塞状态、就绪状态、死亡状态

 ● 阻塞状态:如果一个线程执行了sleep()、suspend()等方法,失去了所占用的资源之后,该线程就从运行状态变为阻塞状态,在睡眠时间已到或获取CPU资源后重新进入就绪状态,可以分为三种:

  (1)等待阻塞:运行状态中的线程执行wait(),使得线程进入到等待阻塞状态。

  (2)同步阻塞:线程在获取synchronized 同步锁失败。

  (3)其他阻塞:通过调用线程的sleep()或join()发出I/O请求,线程就进入阻塞状态。当sleep()状态超时、join等待线程终止或超时、或者I/O处理完毕,线程重新进入就绪状态。

 ● 死亡状态:一个运行状态的线程完成任务或者其他终止条件发生的时候,该线程就切换到终止状态。

猜你喜欢

转载自www.cnblogs.com/knsbyoo/p/9252616.html
今日推荐