不论什么时候,只要您将修改的变量接下来可能被另一个线程读取,或者您将读取的变量最后是被另一个线程写入的,那么您必须考虑并发问题,并采取合适的同步方式。
我们可能并没有多少机会写并发的东西,或者在非常精通之前最好还是优先使用最熟悉的,起码应该保证正确性才能讨论性能问题,所以很多概念是理解性的。但理解这些概念会帮助我们理解优秀源码(要不然别人的代码都看不懂(・ε・))以及者写程序时会有更多的思考。
接下来将对常见的并发知识进行知识梳理总结:
- 并发的一些基础概念(本篇)
- 通过单例模式理解synchronized,volatile以及原子类AtomicReference
- 显示锁(Lock)及Condition的学习与使用
- Callable和Future、FutureTask的使用
- 从使用到原理学习Java线程池
- 基于最新版本的AsyncTask源码解读及AsyncTask的黑暗面
- 正确解读ThreadLocal
- 由ReentrantLock分析JUC的核心AQS