Java 多线程技术培训
1 多线程的基本使用
2 脏读与对象监视器
3 线程的优先级、保护线程
4 线程的等待与唤醒
5 实例变量与并发访问
6 线程的休眠、活跃、停止
7 线程副本,死锁与死循环
8 AQS、线程组、队列、线程池
1
多进程和多线程的概念
1.多线程的概念
2.创建多线程——继承Thread
3.创建多线程——实现Runnable
4.创建多线程——实现Callable
2
体会 start 与 run 函数之间的区别
1.多线程抢占CPU资源。
2.start()与run()函数之间的区别。
3.IllegalComponentStateException异常
3
实例变量与线程安全
1.初识synchronized关键字
2.实例变量的共享概念
3.实例变量的不共享概念
4
线程的休眠与活跃
1.isAlive();
2.sleep();
3.staticsynchronized静态锁
4.synchronized代码块
5.线程的生命周期
5
线程的停止
1.interrupt()函数
2.interrupted()函数
3.sleep()与tryCatch异常相结合
4.InterruptedException异常
6
线程的优先级与保护线程
1.线程的优先级、优先级的继承特性、优先级的规则性、优先级的随机性
2.守护线程概念(GC垃圾回收机制即是守护线程模式)
3.利用yield()函数让当前线程放弃CPU资源
7
实例对象与并发访问
1.synchronized同步方法的深入理解
2.多线程中方法内的变量为线程安全的变量、多线程中实例变量为非线程安全的变量
3.多线程应用的多个锁、多线程应用的单个锁
8
脏读与对象监视器
1.实例对象锁synchronized(this)
2.实例对象锁的同步与异步
3.对象监视器synchronized(Object)
4.静态同步staticsychronized
5.静态同步staticsychronized与实例同步的区别
9
死锁与循环
1.synchronized与无限等待
2.解决synchronized的无限等待问题
3.多线程何种情况下会出现死锁
4.jps工具 5.jstack工具
10
线程的等待与唤醒
1.使用wait()、notify()函数达到多线程之间的通信、等待/唤醒 2.join()函数
11
线程副本
1.ThreadLocal线程副本的概念
2.InherItableThreadLocal线程副本的概念
3.InherItableThreadLocal与ThreadLocal的initialValue()搭配使用、childValue函数
12
线程关键字的实现类
1.ReentrantLockjava类锁的概念
2.Lockjava抽象接口的概念解读、函数定义、实现类
3.Conditionjava监视器接口的概念解读、函数定义
13
AQS 与读写
1.AQS的概念/核心思想/模板设计模式
2.ReentrantLock原理
3.ReentrantReadwriteLock锁的简介/读读共享/读写互斥/写写互斥
14
线程组与队列
1.线程组的概念、作用、函数、1级关联与多级关联
2.队列的概念、特点、存储结构
3.Queue队列的概念、实现
4.阻塞队列的概念
5.JDK中阻塞队列的操作
15
线程池
1.线程池的概念、原理、作用
2.四种常见线程池的创建和使用
3.常见队列
4.排队策略