蘑菇街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实现多线程需要注意的细节

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


二、Thread类解析

1.Thread线程类API

  • 1.1设置线程名

  • 1.2守护线程

  • 1.3优先级线程

  • 1.4线程生命周期

  • 1.4.1sleep方法

  • 1.4.2yield方法

  • 1.4.3join方法

  • 1.4.3interrupt方法

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


三、使用多线程需要注意的问题

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、多线程需要注意的事 -总结

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


四、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锁简单总结

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


五、AQS

1、AQS是什么?

2、简单看看AQS

  • 2.1同步状态

  • 2.2先进先出队列

  • 2.3acquire方法

  • 2.4release方法

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


六、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、最后

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


七、线程池

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、线程池关闭

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


八、死锁

1、死锁讲解

  • 1.1锁顺序死锁

  • 1.2动态锁顺序死锁

  • 1.3协作对象之间发生死锁

2、避免死锁的方法

  • 2.1固定锁顺序避免死锁

  • 2.2开放调用避免死锁

  • 2.3使用定时锁

  • 2.4死锁检测

3、死锁总结

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


九、线程常用的工具类

1、CountDownLatch

  • 1.1CountDownLatch简介

  • 1.2CountDownLatch例子

2、CyclicBarrier

  • 2.1CyclicBarrier简介

  • 2.2CyclicBarrier例子

3、Semaphore

  • 3.1Semaphore简介

  • 3.2Semaphore例子

4、总结

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


十、Atomic

1、基础铺垫

  • 1.2CAS再来看看

  • 1.2.1CAS失败重试(⾃旋)

  • 1.2.2CAS失败什么都不做

2、原子变量类简单介绍

  • 2.1原子变量类使用

  • 2.2ABA问题

  • 2.3解决ABA问题

  • 2.4LongAdder性能比AtomicLong要好

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


十一、ThreadLocal

1、什么是ThreadLocal

2、为什么要学习ThreadLocal?

  • 2.1管理Connection

  • 2.2避免一些参数传递

3、ThreadLocal实现的原理

  • 3.1ThreadLocal原理总结

4、避免内存泄露

5、总结

蘑菇街Java大牛纯手打肛出的一份多线程文档,请别丢进收藏夹吃灰


完整版多线程文档资料领取方式:加我VX【tkzl6666】获得免费领取方式。领取之后可别丢进收藏夹吃灰喔!


猜你喜欢

转载自blog.51cto.com/14480698/2487850