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

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

  • 相关阅读:
    angular转场动画
    css常用单位
    css3美化滚动条样式
    grid布局
    angular使用material组件库和tailwindcss样式
    使用 BaGet 搭建 nuget 仓库
    net core api 文件下载,断点续传
    netcore 使用中间件响应文件下载请求
    angular通知组件--angular2-toaster
    angular图标组件--@visurel/iconify-angular
  • 原文地址:https://www.cnblogs.com/knsbyoo/p/9252616.html
Copyright © 2011-2022 走看看