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

JUC高并发编程—JUC概述

什么是JUC

JUC 是 java.util .concurrent 工具包的简称,是处理线程的工具包,从 Java1.5 开始出现。

进程和线程的概念
进程与线程

进程 ( process ) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

线程 ( thread ) 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

进程状态

线程枚举类:

public enum State{ //新建状态 NEW; //就绪状态 RUNNABLE; //阻塞状态 BLOCKED; //等待状态 WAITING; //超时等待 TIME_WAITING; //终止状态 TERMINATED; }
  • NEW(新建):调用 new() 创建一个线程后,处于新建状态。此时该线程仅有 Java 虚拟机为其分配内存并初始化其成员变量,还没有表现出任何线程的动态特征。
  • RUNNABLE(就绪):当线程对象调用 start() 后,线程处于就绪状态。Java 虚拟机为其创建方法调用栈和程序计数器,等待JVM里的线程调度器调度。一旦获得 cup,则执行 run() 方法中的执行体。
  • BLOCKED(阻塞):线程执行过程中被中断,等待某个监视器锁的线程。当发生如下情况时,线程会进入阻塞状态:
  • 线程调用了 sleep() 方法主动放弃占用的cpu资源;
  • 线程调用了一个阻塞式 IO 方法,在该方法返回之前,该线程被阻塞;
  • 线程试图获取一个同步监视器,但该同步监视器正被其他线程使用;
  • 线程正在等待某一个通知;
  • 程序调用了线程 susoend() 方法将该线程挂起。该方法容易造成死锁,不推荐使用。
  • WAITING(等待):一个正在等待另一个线程执行的某一个操作的线程处于这一状态。

  • TIME_WAITING(超时等待):一个正在限时等待另一个线程执行某一动作的线程处于这一状态。

  • TERMINATED(终止):线程完成执行进入终止状态。

线程5种状态转换关系如下图所示:


wait() / sleep() 的区别
  • sleep() 是 Thread 的静态方法,wait() 是 Object 的方法,任何对象实例都能调用。
  • sleep() 不会释放锁,它也不需要占用锁。而 wait() 会释放锁,并需要通过 notify() / notifyAll() 重新获取锁。
  • sleep() 可以在任何地方调用,而 wait() 只能在同步方法或同步代码块中调用。
并发与并行

串行模式:串行表示所有任务都一一按先后顺序进行。串行是一次只能取得一个任务,并执行这个任务。

并行模式:并行意味着可以同时取得多个任务,并同时去执行所取得的这些任务。并行的效率从代码层次上强依赖于多进程/多线程代码,从硬件角度上则依赖于多核 CPU。

并发:并发 (concurrent) 指的是多个程序可以同时运行的现象,更细化的是多进程可以同时运行或者多指令可以同时运行。

并发:同一时刻多个线程在访问同一个资源,多个线程对一个点
例子:春运抢票 电商秒杀...
并行:多项工作一起执行,之后再汇总
例子:泡方便面,电水壶烧水,一边撕调料倒入桶中

管程

管程 (monitor)是保证了同一时刻只有一个进程在管程内活动,即管程内定义的操作在同一时刻只被一个进程调用 (由编译器实现),但是这样并不能保证进程以设计的顺序执行。

JVM 中同步是基于进入和退出管程 (monitor) 对象实现的,每个对象都会有一个管程 (monitor) 对象,管程 (monitor) 会随着 java 对象一同创建和销毁。

执行线程首先要持有管程对象,然后才能执行方法,当方法完成之后会释放管程,方法在执行时候会持有管程,其他线程无法再获取同一个管程。

用户线程和守护线程

用户线程:平时用到的普通线程,自定义线程。

守护线程:运行在后台,是一种特殊的线程,比如垃圾回收。

当主线程结束后,用户线程还在运行,JVM 存活。如果没有用户线程,都是守护线程,JVM 结束


http://www.jsqmd.com/news/1050582/

相关文章:

  • 量子点级埋入异质结构纳米激光器技术突破
  • 2026哈尔滨汽车烧机油维修哪家好?全等级故障修复门店汇总 - 资讯速览
  • 396经济类联考真题pdf|396经济类联考参考书|396经济类联考资料
  • 5分钟快速上手:网易云QQ音乐歌词下载的完整解决方案
  • 乡镇托运电动车不用自送网点!全域上门取车物流渠道盘点,大小件同步揽收 - 时讯资讯
  • 2026 西安市 10 大青少年戒网瘾全封闭军事化管教学校权威榜单|央视首选,家长速藏! - 辛云教育资讯
  • emWin四大核心控件API详解与实战:滚动条、滑块、微调框、文本
  • 【Verilog】从入门到实践:八个核心数字电路设计实例解析
  • 量化交易进阶(一)DMI指标参数调优与多股票回测实战
  • 如何设计一个分布式 ID 生成系统?
  • H100 + DeepSeek-V4-Flash 生产级推理部署实战
  • AI模型泄露传闻辨析:技术定义与合规使用指南
  • 2026年6月最新萧邦中国官方售后服务热线地址电话客服网点 - 亨得利官方服务中心
  • TWR-K21F120M开发板实战:从硬件配置到低功耗与USB开发
  • 搬家家具搭配电动车一起托运划算吗?四大一体化寄运渠道对比,大小货手机一键预约上门 - 时讯资讯
  • 公安部披露——2025年涉老婚恋诈骗超4.2万起,中老年再婚如何守住“钱袋子”? - 资讯速览
  • 北京密云刑事律所推荐:水源保护区律所选型评测榜 - 品牌2026
  • Kuramoto振子模型:从同步现象到复杂网络模拟的Python实现
  • 从零搭建TSN测试环境:基于NXP LS1028A的gPTP同步与Qbv调度实战
  • Python通达信数据接口:3步掌握A股行情分析的免费神器
  • 2026青岛门窗选购权威指南:五大技术派源头工厂深度实测与年度甄选榜单 - GrowthUME
  • 3分钟掌握微信聊天记录完整导出:告别数据丢失的终极方案
  • 马鞍山家长必藏!2026 年十大青少年叛逆戒网瘾学校权威名单,央视名校领衔,帮孩子迷途知返! - 辛云教育资讯
  • 英语阅读_Natural disasters can strike anywhere at any time
  • 淮安小规模、一般纳税人代理记账多少钱?2026年6月淮安代账收费明细与避坑指南 - 山沟沟的小娃娃
  • GEO源头厂商主体爱搜索GEO:品牌如何被AI大模型优先推荐? - 品牌报告
  • 5G QoS深度解析:从PDR到UL PDR,揭秘数据流转发的核心规则
  • 北京怀柔刑事律所推荐:怎样挑选本地靠谱刑事辩护机构 - 品牌2026
  • 鸿蒙座舱:重构人车家全场景,定义下一代智能汽车应用生态
  • 2025年石家庄市装饰行业协会调研推荐:8家持证合规、零恶意增项的优质装修公司 - 资讯速览