进程和线程的提出极大的提高了操作提供的性能。进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。
多进程的方式也可以实现并发,为什么我们要使用多线程?
多进程方式确实可以实现并发,但使用多线程,有以下几个好处:
进程间的通信比较复杂,而线程间的通信比较简单,通常情况下,我们需要使用共享资源,这些资源在线程间的通信比较容易。
进程是重量级的,而线程是轻量级的,故多线程方式的系统开销更小。
由此可见多线程的学习对程序员来说是至关重要的,这也是为什么不论是大大小小的公司面试官都会问到的问题。金九银十即将来临,我特意花了时间搜集了一些相关的资料整理出了这份“Java多线程核心笔记”,我把多线程分为十一个模块进行解读。让我们来看看文档的内容
初识多线程
介绍进程
回到线程
进程与线程
并行与并发
Javs实现多线程
Java实现多线程需要注意的细节
Thread线程类API
设置线程名守护线程优先级线程线程生命周期
使用多线程需要注意的问题
线程安全问题
性能问题
安全发布对象
简述解决线程安全性的办法
原子性和可见性
线程封闭
不变性
线程安全性委托
synchronized锁和lock锁
synchronized锁
Lock显式锁
Java锁简单总结
AQS
AQS是什么?
同步状态
先进先出队列
sacquire方法
release方法
ReentrantLock
内部类
构造方法
非公平lock方法
公平lock方法
unlock方法
ReentrantReadWriteLock
ReentrantReadWriteLock内部类
读锁和写锁的状态表示
写锁的获取
读锁获职
线程池
线程池简介
JDK提供的线程池API
ForkJoinPool线程池
Callable和Future
ThreadPoolExecutor详解
execute执行方法
线程池关闭
死锁
锁顺序死锁
动态锁顺序死锁
协作对象之间发生死锁
固定锁顺序避免死锁
开放调用避免死锁
使用定时锁
死锁检测
线程常用的工具类
CountDownLatch
CyclicBarrier
Semaphore
Atomic
基础铺垫
CAS失败重试(自旋)
原子变量类简单介绍
LongAdder、AtomicLong性能对比
ThreadLocal
什么是ThreadLocal
为什么要学习ThreadLocal?
ThreadLocal底层原理总结
避免内存泄露
好了,要是觉得本文对你有帮助的话,想要获取参考,获取请移到主页!