当前位置: 首页 > article >正文

JUC-01 线程的创建和状态转换

本次我们主要讲三个问题

  1. 线程是什么?
  2. 线程有哪些状态?各状态间的转换了解吗?
  3. 创建线程的3种方法你都了解吗?

1. 线程是什么?(了解即可)

进程:

进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。是一个正在执行的程序的实例,包括程序计数器、寄存器和程序变量的当前值等。

线程:

线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。

示意图:

2. 线程各状态间的转换了解吗?

这里有哪些状态呢?

初始、等待、超时等待、(运行中、就绪)、终止、阻塞。

状态流转

Sleep: 是简单的线程睡眠。 public static native void sleep(long millis) throws InterruptedException;

Yiled:从CPU上先离开,先让出一下,返回就绪状态。进入等待队列再等调度进行调用,不管后面其他线程能不能抢到;

Join:将其他线程加入进来,等加进来的运行完再运行(sleep再久也没用),一般用来按顺序

wait() 和 notify()是Object类的,等待,通知,不展开。

3.创建线程的3种方法你都了解吗?

1 继承Thread类。

2 实现Runnable

3 创建线程池 ThreadPoolExecutor

使用Callable和Future创建线程。(不展开)

执行结果:

好的,本文也有视频版哦,可以直接在以下平台进行搜索,欢迎大家关注我,持续更新!!


更多 视频 内容请
     1. 抖音       搜索关注 “程序员一棵树”
     2. B 站       搜索关注 “程序员一棵树”
 


http://www.kler.cn/a/11824.html

相关文章:

  • 高性能分布式缓存Redis-高可用部署
  • nuxt3添加wowjs动效
  • 壹连科技IPO闯关成功!连接器行业上市企业+1
  • 前端代码分析题(选择题、分析题)——this指向、原型链分析
  • 【C++类型转换和IO流】
  • 【Linux系统编程】第四十五弹---线程互斥:从问题到解决,深入探索互斥量的原理与实现
  • 浪潮:2022年净利同比增长51.39%
  • Windows服务器使用代码SSH免密登录并执行脚本
  • ChatGPT自动化提高工作效率: 2分钟快速生成思维导图
  • 中科图新BIM+GIS数字化设计施工管理解决方案
  • c++学习之类与对象2
  • Nest教程一(准备阶段)
  • JS面试题之ajax、axios、fetch的区别
  • React 搜索时遇到的坑
  • 适配器模式:C++设计模式中的瑞士军刀
  • 确保实时操作系统(RTOS)设备中的数据安全
  • RHCE第一次作业at和cront两个任务管理程序的区别
  • [python刷题模板] 博弈入门-记忆化搜索/dp/打表
  • 基于逻辑回归构建肿瘤预测模型
  • Java面试题总结 | Java基础部分2(持续更新)
  • 《人体地图》笔记
  • 【京准小课堂】NTP网络校时服务器(时间同步系统)参数详解
  • 企业级信息系统开发讲课笔记2.3 利用MyBatis实现关联查询
  • windows下的wsl2如何进行docker数据卷挂载
  • 1.1 Docker Engine-详细介绍
  • SCADE Display(OpenGL)软件设计文档生成工具的设计考虑