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

1、 JUC概述

1、什么是JUC

Java.util.concurrent工具包的简称、这是一个处理线程的工具包

2、进程和线程

一个进程包含多个线程,线程是操作系统能够进行运算调度的最小单位

3、线程的状态

  • NEW: 初始状态,线程被创建出来但没有被调用 start()
  • RUNNABLE: 运行状态,线程被调用了 start()等待运行的状态。
  • BLOCKED:阻塞状态,需要等待锁释放。
  • WAITING:等待状态,表示该线程需要等待其他线程做出一些特定动作(通知或中断)。
  • TIME_WAITING:超时等待状态,可以在指定的时间后自行返回而不是像 WAITING 那样一直等待。
  • TERMINATED:终止状态,表示该线程已经运行完毕。

4、wait/sleep 的区别

共同点:两者都可以暂停线程的执行。

区别

  • sleep() 方法没有释放锁,而 wait() 方法释放了锁
  • wait() 通常被用于线程间交互/通信,sleep()通常被用于暂停执行。
  • wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的 notify()或者 notifyAll() 方法。sleep()方法执行完成后,线程会自动苏醒,或者也可以使用 wait(long timeout) 超时后线程会自动苏醒。
  • sleep()Thread 类的静态本地方法,wait() 则是 Object 类的本地方法。

http://www.kler.cn/news/337208.html

相关文章:

  • MyBatis-Plus 字段对应不上或字段在MySQL中为关键字
  • Spring Boot驱动的现代医院管理系统
  • 云原生周刊:Argo CD v2.13 发布候选版本丨2024.9.30
  • QT 鼠标和键盘事件
  • 嵌入式Linux:信号集
  • C++学习笔记----8、掌握类与对象(六)---- 操作符重载(1)
  • Conda答疑
  • 人工智能新闻和发展 (24001)- By 10/4/2024
  • 一天认识一个硬件之交换机
  • 边缘人工智能(Edge Intelligence)
  • 基于Vue3+pinia+vue-router+axios+element-plus等开发的新闻发布管理系统
  • 【Java】springboot 项目中出现中文乱码
  • 基于pytorch的手写数字识别-训练+使用
  • 【ubuntu】ubuntu20.04安装conda
  • 【树莓派5B】IO串口通信使用
  • 软件测试面试题大全
  • JVM 内存布局
  • 用Python Turtle绘制天安门技术讲解
  • Python酷库之旅-第三方库Pandas(136)
  • 使用 Spring Boot 客户端对 Apache Pulsar 进行自定义身份验证