主要涉及到2个标准
- JSR 133 Java Memory Module
- JSR 166 Concurrency
以下分析基于Java 8
先学习并发编程出现问题的原因
1.java 并发的一些基础知识
然后再了解Java语言提供的解决方案
1.volatile、final和synchronized
2.wait-notify-sleep-interrupt-join方法的一些理解
进阶学习java.util.concurrent包里面的内容,Java提供的性能和扩展性更高的解决方案,主要分如下几篇来讲解
1.Java 并发编程框架_简介
2.Java并发编程框架_Executor框架
3.Java并发编程框架_Lock
4.Java并发编程框架_原子变量
5.Java并发编程框架_并发容器
6.Java并发编程框架_forkjoin框架
学习过程的sample代码在mulitthreaddemo
最后是一些编程的技巧
通过对这几篇文章的学习,对Java语言的整个并发框架有一个整体的认识,在后面的工作中,灵活运用
学习过程中的几个阶段,共勉
- 先学会使用how to use
- 然后研究实现原理how to work
- 再了解规范why it work
- 灵活运用
- 最后从使用中发现的问题,来看现有框架的限制,重新审视标准的合理性,在现有的基础上做扩展。到这一步基本上就是大神,标准制定者
建议阅读书籍
- 《Java并发编程的艺术 》 介绍并发框架相关的类和使用
- 《Java并发编程实践》 理论+实践
- 《深入理解Java虚拟机第3版》 理论+分析
建议阅读的网站
- JCP java标准定义的网站
- Doug Lea java并发包的作者
- The Java® Language Specification Java SE 8 Edition Oracle的官方网站
- The Java® Virtual Machine Specification Java SE 8 Edition Oracle的官方网站
- Openjdk jdk的开源版本,可以研究具体的实现