蜗牛学苑 Java 学习 Day14|多线程入门、线程同步思维导图复盘

发布时间:2026/7/31 4:34:58
蜗牛学苑 Java 学习 Day14|多线程入门、线程同步思维导图复盘 一、思维导图整体知识结构梳理本次学习内容分为四大核心模块多线程基础概念、多线程三种实现方式、线程安全与同步机制、Lock 锁与 Lambda 简化写法是 Java 并发编程入门核心内容。一多线程基本概念进程操作系统独立资源分配单位一个运行中的软件就是一个进程线程进程内独立执行路径是 CPU 调度最小单位一个进程可包含多条线程并发 / 并行并发是 CPU 快速轮换执行多个线程宏观同时、微观交替并行是多核 CPU 同时执行多条线程。二多线程三种实现方式继承 Thread 类自定义类继承Thread重写run()方法new 对象.start()启动线程缺点Java 单继承无法再继承其他类耦合度高。实现 Runnable 接口推荐实现Runnable重写run()传入 Thread 构造器启动优点避免单继承限制、同一个任务可被多个线程共用资源共享更方便。实现 Callable 接口 FutureTask支持线程返回值、抛出异常可通过get()获取执行结果适合需要拿到线程执行返回数据的场景。线程常用 APIstart()真正开启线程由 JVM 调用 run 方法Thread.currentThread()获取当前执行线程对象setPriority()设置线程优先级仅为调度建议不绝对生效sleep()让线程休眠指定毫秒释放 CPU 执行权getName()/setName()获取 / 设置线程名称。三线程安全问题问题根源多条线程同时操作共享临界资源CPU 切换执行导致指令被拆分出现数据错乱典型案例售票超卖、剩余票数负数解决核心思路保证共享资源同一时间只允许一条线程执行即原子性操作通过加锁实现线程互斥。四线程同步方案1. synchronized 同步锁隐式锁同步代码块synchronized(锁对象){ 操作共享资源代码 }锁对象任意唯一对象粒度更细同步方法方法上加synchronized修饰非静态锁为this 当前对象静态锁为类字节码对象 Class 底层自动完成锁获取与释放出现异常会自动释放锁不会死锁。2. Lock 锁显式锁java.util.concurrent.locks手动创建ReentrantLock可重入锁对象手动 lock () 加锁、finally 块中 unlock () 释放锁 优势灵活性更高、可尝试非阻塞获取锁、公平锁 / 非公平锁可配置锁粒度控制更精准。五Lambda 表达式简化线程代码因为Runnable是函数式接口仅一个抽象方法可以用 Lambda 一行简化线程创建java运行new Thread(() - { // 线程执行任务 }).start();大幅精简匿名内部类冗余代码也是函数式编程入门实践。二、思维导图制作与分享意图1. 个人知识点梳理与易错点规避线程三种实现方式优缺点、synchronized 锁对象归属静态 / 非静态、Lock 手动锁必须在 finally 释放等都是高频易错点。通过思维导图层级拆解理清线程不安全产生本质、两套锁机制区别避免售票案例超卖、死锁、锁未释放等编码 bug。2. 面试与项目实用价值多线程、并发安全、synchronized 与 Lock 对比是后端面试必考内容也是实际项目异步任务、定时处理、高并发接口的基础。这份导图完整覆盖线程创建、生命周期、同步加锁方案可作为并发入门速查手册。3. 课程体系承接逻辑前面反射、代理、注解、泛型夯实 JavaSE 底层基础本日进入并发编程模块属于 Java 高阶核心能力后续线程池、volatile、JMM、AQS 等内容都建立在本次线程安全、锁机制之上为高并发编程、框架底层原理理解铺路。4. 思维导图结构化优势多线程概念抽象、锁规则容易混淆树形结构按照「是什么→怎么创建→有什么问题→怎么解决→代码简化写法」递进拆解清晰区分两种锁的使用场景与语法差异复习逻辑直观清晰。三、当日学习总结今天系统完成 Java 多线程入门学习理解进程与线程区别掌握继承 Thread、实现 Runnable、CallableFutureTask三种线程创建方式熟练调用线程常用控制 API弄懂多线程并发操作共享资源导致线程不安全的底层原因学会使用synchronized同步代码块 / 同步方法、ReentrantLock显式锁两种方案解决线程安全问题最后利用 Lambda 表达式简化 Runnable 线程代码体会函数式接口简化编程的优势。 并发编程是后端开发核心能力本次掌握线程基础与锁同步机制正式打开 Java 并发体系学习入口为后续线程池、锁优化、高并发问题排查打下扎实基础。