首页/新闻资讯/正文详情

【Java 并发-面试】从线程基础到企业级开发的知识点概况

发布时间:2026/11/3 2:01:19 来源:云帆数科 栏目:资讯中心
【Java 并发-面试】从线程基础到企业级开发的知识点概况
文章目录一、从基础到高层多并发的架构视角第一层执行单元——线程是什么、谁在跑第二层共享与互斥——多线程下数据为何会错、如何保护第三层类与线程的边界——谁加载类、多租户与插件化第四层内存可见性与有序性——JMM 与 volatile第五层协作与模式——线程间如何配合、JUC 与设计模式第六层资源与可观测性——线程池、异步结果、问题归因小结一条线串起来二、线程如何创建、生命周期与状态、常用 API三、线程安全为什么共享数据会错、synchronized 与死锁四、线程间协作wait/notify、阻塞与异步、Hook 与优雅停机五、线程池复用与排队、参数与拒绝策略、异步结果 Future六、类加载与线程双亲委派、谁加载类、线程上下文类加载器七、内存可见性与有序性JMM、volatile、单例怎么写才安全八、JUC 与多线程设计模式锁与原子类、AQS、Future/ThreadLocal/Event Bus九、线上线程问题怎么抓 Dump、怎么看状态与锁、怎么分析死锁先以电商秒杀场景串联多线程全知识点生命周期秒杀请求触发Tomcat线程池创建工作线程新建→ 争抢库存锁就绪→ 执行业务逻辑运行→ 等待Redis响应阻塞→ 完成扣减终止数据存储ThreadLocal存储用户秒杀上下文共享库存变量用AtomicInteger保证原子性线程管理自定义线程池处理异步下单配置核心/最大线程数队列设置CallerRunsPolicy拒绝策略线程协作用Semaphore限流、CountDownLatch汇总多线程库存校验结果问题与排查锁竞争导致线程阻塞、线程池耗尽引发请求堆积通过jstack分析线程状态、jconsole监控线程池指标定位问题。一、从基础到高层多并发的架构视角多线程思考基本框架线程是如何跑的多并发是在回答一层层设计问题谁在执行、谁在共享、谁在加载、谁先谁后、如何协作、如何管好资源与可观测性。下面按「从基础到高层」串一条线便于建立体系。第一层执行单元——线程是什么、谁在跑要回答的问题请求/任务最终是在什么「执行单元」上跑的这些单元如何创建、如何调度、有哪些状态线程是进程内的执行单元是操作系统调度的最小单位在 Java 里一个线程对应一条执行流有独立的栈和程序计数器共享堆和方法区。架构上要建立的第一点认知线程是资源单位。系统能同时处理多少请求、延迟多高很大程度上由「有多少线程、这些线程在干什么」决定。所以做高并发设计时先要画出线程模型谁 accept、谁 IO、谁算业务、谁回调再谈锁和队列。第二层共享与互斥——多线程下数据为何会错、如何保护要回答的问题多个线程同时访问同一份数据时为什么会错语言和 JVM 提供了哪些手段保证「正确性」并发不安全的本质往往可归结为三件事可见性一个线程改完另一个看不到、原子性多步操作被交错、有序性指令重排导致与预期不符。解决手段从语言层看主要是锁synchronized、ReentrantLock和volatile配合下一层 JMM 理解。架构上要建立的第二点认知锁的粒度与一致性边界。锁太大串行化严重锁太小易出错。单机锁只保证单 JVM 内一致跨机一致要依赖事务、消息、分布式锁等架构师要明确「一致性边界画在哪一层」。第三层类与线程的边界——谁加载类、多租户与插件化要回答的问题类是由谁加载的多应用、多租户、插件化场景下如何做到「类隔离」或「父调子」JVM 通过ClassLoader加载类双亲委派保证了类在 JVM 内的唯一性与安全线程上下文类加载器打破了「父不能直接用子加载的类」的限制是 SPI、JDBC Driver、插件化的常用手段。架构上要建立的第三点认知类加载边界与线程绑定。中间件、多租户、热部署都会动到 ClassLoader要清楚「谁设置、谁使用」以及生命周期避免类找不到或内存泄漏。这一层和「线程」的关系在于很多加载动作发生在线程执行过程中且上下文类加载器是每线程一份的。第四层内存可见性与有序性——JMM 与 volatile要回答的问题多线程下「谁先执行、谁对谁可见」由什么规则保证volatile 能解决什么、不能解决什么JMMJava 内存模型规定了主内存与工作内存的交互、happens-before等规则是理解可见性、有序性的基础。volatile保证可见性与禁止指令重排但不保证复合操作的原子性适合做状态标志、DCL 单例的实例引用等。架构上要建立的第四点认知语言层一致性 ≠ 分布式一致性。JMM 解决的是「同一 JVM 内多线程」的可见与有序跨进程、跨机器要依赖分布式事务、消息、版本号等。在做缓存、本地队列、多级存储时要明确「谁可见、谁先发生」避免想当然。第五层协作与模式——线程间如何配合、JUC 与设计模式要回答的问题除了「一个线程一把锁」之外线程之间如何协作有哪些可复用的结构模式从wait/notify到JUCLock、原子类、队列、CountDownLatch、Semaphore 等再到设计模式Future、Guarded Suspension、ThreadLocal、Latch、Worker-Thread、Active Objects、Event Bus都是在回答「如何协调多条执行流」。架构上要建立的第五点认知模式是结构的复用。Worker-Thread 与线程池本质都是「有限 worker 任务队列」区别在 API 与生命周期Event Bus 与 MQ 的边界在进程内/跨进程、持久化与可靠性。选型时看的是「扩展点」和「约束」而不是死记名字。这一层要掌握JUC 常用工具、AQS 的抽象、Future/CompletableFuture 的编排、ThreadLocal 的原理与内存泄漏注意点、常见多线程设计模式的适用场景。目的是在做异步、多路调用、事件驱动、上下文传递时能选对工具和模式并说清与 MQ、线程池的边界。第六层资源与可观测性——线程池、异步结果、问题归因要回答的问题线程从哪里来、到哪里去如何控制并发度与资源占用出问题时如何快速归因线程池把「创建/销毁线程」变成「复用 排队」是控制并发度与资源的上界Future/CompletableFuture解决「异步结果怎么拿、怎么编排、怎么超时」。Thread Dump和线程池监控解决「卡顿、死锁、CPU 高、线程打满」时的归因。架构上要建立的第六点认知线程是资源、可观测性是能力。线程池参数核心/最大/队列/拒绝决定了系统能扛多少并发、过载时如何降级线程命名、Dump、队列与活跃数监控决定了能否快速定位问题。容量规划、限流、熔断、优雅停机都建立在这一层之上。这一层要掌握线程池的组成与执行顺序、ThreadPoolExecutor 参数与拒绝策略、Future/CompletableFuture 的用法、jstack 与 Thread Dump 的分析思路。目的是在设计阶段定好线程池与拒绝策略在运维阶段能结合 Dump 与监控快速归因而不是凭感觉或事后救火。小结一条线串起来基础线程是执行单元、是资源单位 → 先有「谁在跑」的模型。安全共享与互斥、锁与死锁 → 再谈「谁在共享、如何不错」。边界ClassLoader 与线程上下文类加载器 → 明确「谁加载类、类隔离与跨层加载」。可见与有序JMM 与 volatile → 明确「谁先谁后、谁对谁可见」。协作JUC 与设计模式 → 明确「如何协调多条执行流、如何选模式」。资源与可观测线程池、Future、Dump → 明确「如何管好资源、如何排查」。按这条线建立体系多并发的知识就不再是零散的「六块」而是从执行单元 → 共享与互斥 → 类边界 → 内存模型 → 协作与模式 → 资源与可观测的递进架构师在做方案、做评审、做排查时可以按层对号入座知道「这一层要回答什么问题、用到哪些知识点」。二、线程如何创建、生命周期与状态、常用 API知识点概况线程是进程内的执行单元共享进程内存有独立的程序计数器与栈。要掌握三件事怎么创建、有哪些状态、常用 API 怎么用。创建方式继承 Thread、实现 Runnable/Callable、通过线程池提交任务核心是理解「任务」与「线程」分离策略模式。生命周期与状态NEW → RUNNABLE就绪/运行→ BLOCKED / WAITING / TIMED_WAITING → TERMINATED要知道每个状态因何进入、如何退出。常用 APIstart()与run()的区别sleep、yield、join、interrupt对状态的影响线程命名、优先级、守护线程、ThreadGroup、上下文类加载器。异常与 HookUncaughtExceptionHandler 捕获线程内未处理异常Runtime.addShutdownHook 在 JVM 退出前执行逻辑。在实际业务开发与架构设计中的注意点线程是资源单位而非业务概念系统吞吐与延时由「线程模型」决定如 N 个 accept 线程 M 个 worker 线程。统一线程命名便于日志与 Dump 排查控制线程数量避免无界创建导致 OOM明确守护线程只做辅助不承载核心业务。做高并发方案时先画出「请求进来到响应出去」的线程流转图再谈锁与队列。参考链接① 线程的基础知识多线程基础、生命周期、状态转换、实现方式三、线程安全为什么共享数据会错、synchronized 与死锁知识点概况多线程共享变量时出现数据不一致本质往往可归结为三方面可见性、原子性、有序性。解决手段以 synchronized 为主同时要会排查死锁、会选锁。并发不安全的三个原因可见性一线程改完另一线程看不到、原子性多步操作被交错执行、有序性指令重排导致与预期不符。synchronizedJava 内置互斥手段Monitor、方法锁与代码块锁、This Monitor 与 Class Monitor锁升级偏向锁、轻量锁、重量锁、锁粗化与锁消除。死锁成因互斥、持有并等待、不可剥夺、环路等待诊断用 jstack 等工具。锁的选用内置锁synchronized、显式锁ReentrantLock、ReadWriteLock、乐观锁CAS在不同场景下的取舍。在实际业务开发与架构设计中的注意点锁的粒度与性能直接影响并发能力锁范围过大导致串行化、过小则易出错高并发场景常通过缩小临界区、无锁结构CAS、不可变、读写分离降低锁竞争。死锁预防应在设计阶段考虑统一加锁顺序、使用 tryLock 超时、避免在持锁时调用外部。微服务与分布式场景下线程内锁只保证单机一致跨机一致要依赖事务、消息、分布式锁等方案设计时要明确「一致性边界」在哪一层。参考链接② 线程的数据如何存储并发不安全本质可见性、原子性、有序性JMMJava 内存模型与线程安全synchronized 详解Java 中用到的锁四、线程间协作wait/notify、阻塞与异步、Hook 与优雅停机知识点概况多个线程要协同工作要么用 wait/notify 在单 JVM 内协作要么用消息、事件做异步同时要会管线程组、抓异常、做优雅停机。同步阻塞与异步非阻塞区别在于是否占用线程等待高并发下常选异步。wait/notify单机内多线程协作条件不满足时等待Guarded Suspension或直接返回Balking可结合「条件变量 锁」理解如手写 BooleanLock。ThreadGroup线程的组织与批量操作。异常与 HookUncaughtExceptionHandler 捕获线程内异常Runtime.addShutdownHook 在 JVM 退出前执行用于优雅停机关连接、刷缓冲等。在实际业务开发与架构设计中的注意点同步阻塞 vs 异步非阻塞是方案选型的核心阻塞模型简单但占用线程高并发下常改为 NIO 事件循环或异步回调。wait/notify 适合「单机、单 JVM」内的生产者-消费者跨进程、跨服务则用消息队列、Event Bus。Hook 线程用于优雅停机关闭连接、flush 缓冲、上报状态设计时要约定停机超时与强制退出策略避免 Hook 内死锁或长时间阻塞。五、线程池复用与排队、参数与拒绝策略、异步结果 Future知识点概况线程池用「少量线程 任务队列」复用线程、控制并发要会配参数与拒绝策略会用 Future/CompletableFuture 拿异步结果。线程池的组成任务队列、线程数量核心/最大、拒绝策略、线程工厂。执行顺序先填满核心线程 → 再入队 → 队列满再扩到最大线程 → 再满则触发拒绝策略。ThreadPoolExecutor核心参数、常见队列有界/无界、拒绝策略Abort、CallerRuns、Discard、DiscardOldest。异步结果Callable、Future、FutureTask 的用法CompletableFuture 的链式编排、allOf/anyOf、异常处理。在实际业务开发与架构设计中的注意点线程池是并发度与资源的上界必须显式设定核心/最大线程数、队列容量与拒绝策略避免无界队列导致 OOM 或静默堆积。容量规划根据 QPS、单请求耗时估算所需线程数拒绝策略核心链路常用 CallerRuns 或降级非核心可 Discard 并打点监控。Future/CompletableFuture 用于任务编排与超时控制在微服务中常与 HTTP 客户端、RPC 超时配合方案设计时要统一「超时与熔断」策略。参考链接④ 线程的管理FutureTask 使用ThreadPoolExecutor 详解六、类加载与线程双亲委派、谁加载类、线程上下文类加载器知识点概况类由谁加载、按什么顺序加载会影响多线程下的类隔离与 SPI线程上下文类加载器是打破双亲委派、实现「父调子」的常用手段。类的加载过程加载、链接、初始化。双亲委派类优先交给父加载器保证类在 JVM 内的唯一性与安全。JVM 三大类加载器Bootstrap、Extension、Application。线程上下文类加载器父加载器加载的代码可能依赖子加载器加载的实现如 JDBC Driver通过Thread.currentThread().getContextClassLoader()打破单向依赖在 SPI、插件化中常用。在实际业务开发与架构设计中的注意点双亲委派保证类在 JVM 内的唯一性与安全中间件、框架若自定义类加载器要清楚类隔离边界如 Tomcat 多应用、多租户隔离。线程上下文类加载器是跨层加载的桥梁在做组件化、热部署、多版本共存时要明确「谁设置、谁使用」以及生命周期避免类找不到或内存泄漏。云原生与容器环境下类加载还与镜像分层、启动速度相关。参考链接JMMJava 内存模型与线程安全七、内存可见性与有序性JMM、volatile、单例怎么写才安全知识点概况多线程下「谁先执行、谁对谁可见」由 JMM 规定volatile 能保证可见与禁止重排是写安全单例和状态标志的常用手段。JMMJava 内存模型主内存与工作内存的抽象happens-before 等规则是理解可见性、有序性的基础。volatile保证可见性、禁止指令重排不保证原子性适用场景如状态标志、DCL 单例中的实例引用。单例的多种写法饿汉、懒汉、懒汉同步、Double-Check、VolatileDCL、Holder、枚举从线程安全、懒加载、反序列化安全等维度对比选用。在实际业务开发与架构设计中的注意点JMM 是语言层的一致性模型与分布式系统中的「一致性」有类比但不相同多线程是共享内存分布式是网络分区与延迟做缓存、本地队列、多级存储设计时要明确「谁可见、谁先发生」。volatile 适合「一写多读」的状态位复杂共享状态仍需要锁或原子类。单例在实际业务中常用于无状态服务、工具类、连接池入口选型时要考虑序列化、反射、多 ClassLoader 环境下的唯一性。参考链接② 线程的数据如何存储并发不安全本质可见性、原子性、有序性JMMJava 内存模型与线程安全volatile可见性、防止指令重排Java 中用到的锁八、JUC 与多线程设计模式锁与原子类、AQS、Future/ThreadLocal/Event Bus知识点概况除了 synchronized/wait-notifyJUC 提供更丰富的锁、原子类、队列、Latch 等AQS 是很多同步器的底座设计模式把「任务与线程、异步与回调」抽象成可复用的结构。JUC 常用工具Lock、ReadWriteLock原子类AtomicXxx、LongAdder阻塞队列CountDownLatch、CyclicBarrier、Semaphore。AQSAbstractQueuedSynchronizerstate、CAS、CLH 队列很多锁和同步器基于它实现。常见设计模式Future先拿凭据、后取结果Guarded Suspension条件等待ThreadLocal线程局部存储注意内存泄漏BalkingLatch多任务完成后汇总两阶段终止Worker-ThreadChannel 工作线程Active Objects异步接口 内部队列Event Bus订阅/发布Event Driven 架构。在实际业务开发与架构设计中的注意点模式是结构的复用选型时看「扩展点」和「约束」Worker-Thread 与线程池本质都是「有限 worker 任务队列」区别在 API 与生命周期Active Objects 适合「异步接口、同步语义」的封装便于与 RPC、消息对接。Event Bus 用于解耦、异步、审计要界定与 MQ 的边界进程内 vs 跨进程、持久化与可靠性。ThreadLocal 在连接池、事务上下文、链路追踪中广泛使用要约定设置与清理的边界如 Filter/Interceptor 的 before/after避免线程复用导致上下文串线。参考链接② ThreadLocal ③ 线程协作ThreadLocal 详解JUC 学习概览AQS 锁核心类原子类CAS、乐观锁、Unsafe九、线上线程问题怎么抓 Dump、怎么看状态与锁、怎么分析死锁知识点概况线上卡顿、死锁、CPU 飙高、线程数过多时需要抓线程快照并看懂「谁在等谁、谁持有什么锁」jstack 是常用手段。抓取快照用 jstack 获取 Thread Dump。线程状态在 dump 中的含义RUNNABLE、BLOCKED、WAITING、TIMED_WAITING锁与 monitor 信息、持有者与等待者。死锁jstack 末尾会输出死锁检测结果。分析思路先看状态分布再针对 BLOCKED/WAITING 看锁的持有与等待关系结合业务代码、锁使用与线程池配置做归因。在实际业务开发与架构设计中的注意点可观测性是稳定运行的基础线程模型要「可解释、可排查」——统一命名、关键路径打点、线程池与队列监控。Thread Dump 是事后分析的重要手段应约定规范保留 Dump 的时机如 CPU 高、RT 突增、与链路/日志的关联。容量规划与限流可减少「线程打满、队列堆积」类问题死锁则需在代码评审与测试阶段关注加锁顺序与超时。参考链接⑤ 企业级操作Thread Dump 分析方法

相关推荐

【Java并发】Tomcat 与 Spring:后端项目中的线程与资源管理
【Java并发】Tomcat 与 Spring:后端项目中的线程与资源管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:01:19

【Java并发】用 JMM 与 Happens-Before 解决多线程可见性与有序性问题
【Java并发】用 JMM 与 Happens-Before 解决多线程可见性与有序性问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 2:01:19

Qwen3-Omni-30B-A3B-Instruct智能洗车机:车辆音视频检测与清洗系统
Qwen3-Omni-30B-A3B-Instruct智能洗车机:车辆音视频检测与清洗系统

Qwen3-Omni-30B-A3B-Instruct智能洗车机:车辆音视频检测与清洗系统 Qwen3-Omni-30B-A3B-Instruct是一款多语言全模态模型,原生支持文本、图像、音视频输入,并能实时生成语音。本文将介绍如何利用这一强大模型构建智能洗车机的车辆音视频检测与… · 2026/11/3 2:01:19

一个 4B 小模型被玩出了三条路:一句话生成 3D 世界,还能去给自动驾驶当“眼睛”
一个 4B 小模型被玩出了三条路:一句话生成 3D 世界,还能去给自动驾驶当“眼睛”

一个 4B 小模型被玩出了三条路:一句话生成 3D 世界,还能去给自动驾驶当“眼睛” 最近科技圈有个挺有意思的现象:同一款“4B”体量的小模型,被不同团队拉去干了完全不相干的三件事。 一支人马拉它去做 3D 场景,你打一句… · 2026/11/3 2:51:28

大模型能替你写研究局限吗:能力边界与自查
大模型能替你写研究局限吗:能力边界与自查

把「研究局限」这一节交给大模型,拿回来的往往是一段读起来很顺、放进哪篇论文都不违和的文字。它能不能直接用,不取决于文笔,而取决于你手里有没有一把尺子去量它。下面说清三件事:能力边界在哪、五类缺陷怎么识别与改写、哪些句… · 2026/11/3 2:51:28

实验研究的内部效度威胁:单组前后测为什么排除不掉
实验研究的内部效度威胁:单组前后测为什么排除不掉

实验做完了,评审意见只有一句:怎么证明这个变化不是你自己的测量造成的。这类质疑很少指向统计方法,它指向内部效度——观测到的差异能否归因于处理。单组前后测在这一点上先天吃亏:一个组、两个时点,五项威胁同时敞口… · 2026/11/3 2:51:28

论文的抽样框怎么定:从目标总体到可操作名单
论文的抽样框怎么定:从目标总体到可操作名单

抽样框不是一张表,而是一条从"想研究谁"收窄到"明天能打给谁"的链路。论文里写"随机抽样"却拿不出带编号、带准入判据、带联系路径的名单,一问"框从哪来"就卡住。下面拆五级,每级一问、一样交付物&a… · 2026/11/3 2:51:28

ASan(AddressSanitizer)内存错误检测工具详讲
ASan(AddressSanitizer)内存错误检测工具详讲

一、ASan 是什么ASan 全称 AddressSanitizer,通常称为地址消毒器,是一种运行时内存错误检测工具。主要用于检测 C/C 程序中的非法内存访问问题。它通过编译器插桩(Instrumentation)和运行时库(Runtime Library&#xf… · 2026/11/3 2:51:28

《读懂 Token》省 Token 的 12 个实操开关:不改模型,账单直降 80% —— Cursor 单飞一篇
《读懂 Token》省 Token 的 12 个实操开关:不改模型,账单直降 80% —— Cursor 单飞一篇

省 Token 的 12 个实操开关:不改模型,账单直降 80%——Cursor 单飞一篇 8 个最实用的开关全部打开,单次请求从 12,000 Token 压到 ~1,200,账单打一折。 Token 系列 第 5 篇 为什么专门写一篇 Cursor 第二篇讲过 12 个省 Token 的… · 2026/11/3 2:50:28

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码