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处理完毕,线程重新进入就绪状态。

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

  • 相关阅读:
    android viewpager嵌套使用photoview异常问题
    android mvp设计模式
    android webview处理h5打开本地文件浏览器的功能
    使用python进行新浪微博粉丝爬虫
    android之ViewPager修改滑动速度
    我眼中的“阿里月饼事件”
    奄奄一息雏鸟
    RPC(远程过程调用)的应用
    对于开源菜谱的思考
    我跟360上网导航的过招
  • 原文地址:https://www.cnblogs.com/knsbyoo/p/9252616.html
Copyright © 2011-2022 走看看