JUC
volatile
内存屏障(Memory Barrier)
happen-before原则
程序次序规则
监视器锁规则
volatile变量规则
线程启动规则
线程加入规则
传递性规则
锁框架
Lock和Condition接口
Lock的一个实现类ReentrantLock
Lock接口方法
1 | public interface Lock { |
可以通过lock的newCondition()获取Condition对象,
1 | public interface Condition { |
其中await就是synchronized中的wait方法
signal和signalAll相当于notify和notifyAll
可重入锁
公平锁和非公平锁
读写锁
锁降级 写锁降级为读锁,只能先加写锁在加读锁,并且是单个线程
读写锁是不支持锁升级的,即读锁后添加写锁
队列同步器AQS
原子类
ABA问题及解决方案
添加版本号
并发容器介绍
并发容器
CopyOnWriteArrayList
ConcurrentHahsMap
阻塞队列
ArrayBlockingQueue
SynchronousQueue
LinkedBlockingQueue
线程池
线程池类
可以通过Executors类创建线程池
也可以手动创建线程池
1 | public ThreadPoolExecutor( |
执行带返回值的任务
submit方法,返回值是一个future对象
submit函数中传入FutureTask对象,线程结束,从FutureTask获取
执行定时任务
ScheduledThreadPoolExecutor中的schedule方法
并发工具类
计数器锁 CountDownLatch
循环屏障CyclicBarrier
信号量Semaphore
数据交换Exchanger
Fork/Join框架
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 还(huan)!