随笔分类 -  线程相关

摘要:目录关于内核态:synchronized和ReentrantLock 关于内核态:synchronized和ReentrantLock 对比: 特性 synchronized ReentrantLock 默认状态 偏向锁(用户态) CAS(用户态) 低竞争 轻量级锁(用户态) 自旋(用户态) 高竞争 阅读全文
posted @ 2025-10-17 15:27 deyang 阅读(6) 评论(0) 推荐(0)
摘要:目录Java并发之AQS详解1. AQS 是什么?2. 核心原理2.1 一个状态:state2.2 一个队列:CLH 变种队列2.3 一套模板方法:获取与释放3. 工作流程(以 ReentrantLock 的独占模式为例)3.1 获取锁 (lock() -> acquire(1))3.2 释放锁 ( 阅读全文
posted @ 2025-10-17 14:29 deyang 阅读(29) 评论(0) 推荐(0)
摘要:目录Java中断引言:为什么需要线程中断?中断响应中断和忽略中断的任务 Java中断 引言:为什么需要线程中断? 在并发编程中,我们经常需要协调不同线程的执行。 有时,一个线程需要通知另一个线程停止其当前正在执行的任务。 你可能会想到一些看似直接的方法,比如调用 Thread.stop() 或 Th 阅读全文
posted @ 2025-10-17 11:08 deyang 阅读(8) 评论(0) 推荐(0)
摘要:目录线程的状态对比:等待、驻留、监视等待(waiting)和监视(blocked)的区别等待(waiting)和监视(blocked)都算是阻塞吗?线程池没有任务来时,所有核心线程会是等待(waiting)状态?不同类型的等待总结等待(Wait)和驻留(Park)的区别代码示例对比总结Park状态的 阅读全文
posted @ 2025-10-15 14:00 deyang 阅读(62) 评论(0) 推荐(0)
摘要:目录线程池核心参数线程池工作流程线程池提交任务执行无返回值任务:提交有返回值任务:执行流程对比ScheduledThreadPool (定时任务线程池):任务包装方式实现细节对比使用建议性能考虑执行细节说明线程池的常见类型1. FixedThreadPool (固定大小线程池)2. CachedTh 阅读全文
posted @ 2025-10-09 11:04 deyang 阅读(22) 评论(0) 推荐(0)
摘要:目录超线程和多线程的对比分析本质区别逻辑核等待的类型 超线程和多线程的对比分析 本质区别 特性 Intel 超线程技术 程序的多线程 层面 硬件层面,是CPU的一种功能特性。 软件层面,是程序设计的一种方法。 目的 让一个物理CPU核心“看起来”像两个逻辑核心,目的是当一个线程在等待(如等待数据从内 阅读全文
posted @ 2025-09-25 16:21 deyang 阅读(72) 评论(0) 推荐(0)
摘要:目录上下文切换和模式切换为什么需要区分两者?一个例子理清所有概念上下文切换的整体流程阶段一:进入内核态(模式切换)阶段二:内核决定进行切换阶段三:执行上下文切换(核心步骤)阶段四:返回用户态(模式切换) 上下文切换和模式切换 上下文切换指的是换线程执行,模式切换是同一个线程获得不同的权限 这两句话完 阅读全文
posted @ 2025-08-30 23:09 deyang 阅读(36) 评论(0) 推荐(0)
摘要:目录线程Java线程状态TIMED_WAITING进入方式:BLOCKED进入方式:WAITING(无限期等待状态)进入方式:TERMINATED状态:总结Java线程状态2JVisualVm显示线程状态1关键区别与说明关键对比线程的状态对比:等待、驻留、监视JVisualVm显示线程状态2JVis 阅读全文
posted @ 2025-08-06 14:05 deyang 阅读(25) 评论(0) 推荐(0)
摘要:问题:你的意思是,在启动java程序的时候,jvm会调用其对应的c++代码,启动一个CMS后台线程来对这个java程序进行对象的垃圾回收? 解答:是的,你的理解完全正确!让我更详细地解释这个过程: CMS垃圾收集器的工作机制 当你在启动Java程序时使用-XX:+UseConcMarkSweepGC 阅读全文
posted @ 2025-04-25 15:12 deyang 阅读(24) 评论(0) 推荐(0)