zoukankan      html  css  js  c++  java
  • 线程学习笔记(一)

    一. 一些概念

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

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

    二.  生命周期图:

      

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

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

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

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

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

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

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

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

  • 相关阅读:
    June. 26th 2018, Week 26th. Tuesday
    June. 25th 2018, Week 26th. Monday
    June. 24th 2018, Week 26th. Sunday
    June. 23rd 2018, Week 25th. Saturday
    June. 22 2018, Week 25th. Friday
    June. 21 2018, Week 25th. Thursday
    June. 20 2018, Week 25th. Wednesday
    【2018.10.11 C与C++基础】C Preprocessor的功能及缺陷(草稿)
    June.19 2018, Week 25th Tuesday
    June 18. 2018, Week 25th. Monday
  • 原文地址:https://www.cnblogs.com/knsbyoo/p/9252616.html
Copyright © 2011-2022 走看看