初识多线程

  • 介绍进程
  • 回到线程
  • 进程与线程
  • 并行与并发
  • Javs实现多线程
  • Java实现多线程需要注意的细节

ide 导出java文件_后端

Thread线程类API

设置线程名
守护线程
优先级线程
线程生命周期

ide 导出java文件_面试_02

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

  • 线程安全问题
  • 性能问题
  • 安全发布对象
  • 简述解决线程安全性的办法
  • 原子性和可见性
  • 线程封闭
  • 不变性
  • 线程安全性委托

ide 导出java文件_java_03

synchronized锁和lock锁

  • synchronized锁
  • Lock显式锁
  • Java锁简单总结

ide 导出java文件_ide 导出java文件_04

AQS

  • AQS是什么?
  • 同步状态
  • 先进先出队列
  • sacquire方法
  • release方法

ide 导出java文件_面试_05

ReentrantLock

  • 内部类
  • 构造方法
  • 非公平lock方法
  • 公平lock方法
  • unlock方法

ide 导出java文件_ide 导出java文件_06

ReentrantReadWriteLock

  • ReentrantReadWriteLock内部类
  • 读锁和写锁的状态表示
  • 写锁的获取
  • 读锁获职

ide 导出java文件_面试_07

线程池

  • 线程池简介
  • JDK提供的线程池API
  • ForkJoinPool线程池
  • Callable和Future
  • ThreadPoolExecutor详解
  • execute执行方法
  • 线程池关闭

ide 导出java文件_线程池_08

死锁

  • 锁顺序死锁
  • 动态锁顺序死锁
  • 协作对象之间发生死锁
  • 固定锁顺序避免死锁
  • 开放调用避免死锁
  • 使用定时锁
  • 死锁检测

ide 导出java文件_后端_09

线程常用的工具类

  • CountDownLatch
  • CyclicBarrier
  • Semaphore

ide 导出java文件_面试_10

Atomic

  • 基础铺垫
  • CAS失败重试(自旋)
  • 原子变量类简单介绍
  • LongAdder、AtomicLong性能对比

ide 导出java文件_线程池_11

ThreadLocal

  • 什么是ThreadLocal
  • 为什么要学习ThreadLocal?
  • ThreadLocal底层原理总结
  • 避免内存泄露

ide 导出java文件_java_12