本文主要是介绍Java 锁机制与线程调优,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 为什么使用锁?
多线程操作带来的问题?
-
- 访问冲突;
- 锁竞争;
- 上下文切换开销;
- 同步/内存拷贝开销等;
2. 线程安全
- Java内存模型(JMM)
- working memory & main memory
- 原子性;
- 可见性;
- 有序性;
- 代码重排;
- 内存屏障;
- volatile;
- 锁;
3. Java内存模型
4. 原子性
- byte/short/int/char/boolean/float 读写原子性;
- long/double(64位)读写分两次32位操作,非原子性;
- int i++等组合操作,非原子性;
- synchronized同步块内的操作,具有原子性;
5. 可见性
- final
- volatile
- synchronized
- happens-before
6. 有序性
这篇关于Java 锁机制与线程调优的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!