蘑菇街 Java 大牛熬夜半个月纯手打肛出的一份《多线程源码学习笔记》文档资料,赶紧收藏学习!
前言
这个【多线程】的文档是全程手打肛出来的,共 129 页,希望各位老铁可以转发本文支持一下!
完整版多线程文档资料领取方式:一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。领取之后可别丢进收藏夹吃灰喔!

内容介绍
一、什么是多线程
1.初识多线程
1.1 介绍进程
1.2 回到线程
1.3 进程与线程
1.4 并行与并发
1.5Java 实现多线程
1.5.1 继承 Thread,重写 run 方法
1.5.2 实现 Runnable 接口,重写 run 方法
1.6Java 实现多线程需要注意的细节

二、Thread 类解析
1.Thread 线程类 API
1.1 设置线程名
1.2 守护线程
1.3 优先级线程
1.4 线程生命周期
1.4.1sleep 方法
1.4.2yield 方法
1.4.3join 方法
1.4.3interrupt 方法

三、使用多线程需要注意的问题
1、使用多线程遇到的问题
1.1 线程安全问题
1.3 性能问题
2、对象的发布与逸出
2.1 安全发布对象
3、解决多线程遇到的问题
3.1 简述解决线程安全性的办法
3.2 原子性和可见性
3.2.1 原子性
3.2.2 可见性
3.3 线程封闭
3.4 不变性
3.5 线程安全性委托
4、多线程需要注意的事 -总结

四、synchronized 锁和 lock 锁
1、synchronized 锁
1.1synchronized 锁是什么?
1.2synchronized 用处是什么?
1.3synchronized 的原理
1.4synchronized 如何使用
1.4.1 修饰普通方法法:
1.4.2 修饰代码块:
1.4.3 修饰静态方法
1.4.4 类锁与对象锁
1.5 重入锁
1.6 释放锁的时机
2、Lock 显式锁
2.1Lock 显式锁简单介绍
2.2synchronized 锁和 Lock 锁使⽤哪个
2.3 公平锁
3、Java 锁简单总结

五、AQS
1、AQS 是什么?
2、简单看看 AQS
2.1 同步状态
2.2 先进先出队列
2.3acquire 方法
2.4release 方法

六、ReentrantLock 和 ReentrantReadWriteLock
完整版多线程文档资料领取方式:一键三连+评论,然后添加我的 VX(tkzl6666)即可免费领取。领取之后可别丢进收藏夹吃灰喔!
1、ReentrantLock 锁
1.1 内部类
1.2 构造方法
1.3 非公平 lock 方法
1.4 公平 lock 方法
1.5unlock 方法
2、ReentrantReadWriteLock
2.1ReentrantReadWriteLock 内部类
2.2 读锁和写锁的状态表示
2.3 写锁的获取
2.4 读锁获取
3、最后

七、线程池
1、线程池简介
2、JDK 提供的线程池 API
2.1ForkJoinPool 线程池
2.2 补充:Callable 和 Future
3、ThreadPoolExecutor 详解
3.1 内部状态
3.2 已默认实现的池
3.2.1newFixedThreadPool
3.2.2newCachedThreadPool
3.2.3SingleThreadExecutor
3.3 构造方法
4、execute 执行方法
5、线程池关闭

八、死锁
1、死锁讲解
1.1 锁顺序死锁
1.2 动态锁顺序死锁
1.3 协作对象之间发生死锁
2、避免死锁的方法
2.1 固定锁顺序避免死锁
2.2 开放调用避免死锁
2.3 使用定时锁
2.4 死锁检测
3、死锁总结

九、线程常用的工具类
1、CountDownLatch
1.1CountDownLatch 简介
1.2CountDownLatch 例子
2、CyclicBarrier
2.1CyclicBarrier 简介
2.2CyclicBarrier 例子
3、Semaphore
3.1Semaphore 简介
3.2Semaphore 例子
4、总结

十、Atomic
1、基础铺垫
1.2CAS 再来看看
1.2.1CAS 失败重试(⾃旋)
1.2.2CAS 失败什么都不做
2、原子变量类简单介绍
2.1 原子变量类使用
2.2ABA 问题
2.3 解决 ABA 问题
2.4LongAdder 性能比 AtomicLong 要好

十一、ThreadLocal
1、什么是 ThreadLocal
2、为什么要学习 ThreadLocal?
2.1 管理 Connection
2.2 避免一些参数传递
3、ThreadLocal 实现的原理
3.1ThreadLocal 原理总结
4、避免内存泄露
5、总结

评论 (1 条评论)