如何才能够系统地学习Java并发技术

医院订阅哦!

Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。

这里不仅仅是指使用简单的多线程编程,或者使用juc的某个类。当然这些都是并发编程的基本知识,除了使用这些工具以外,Java并发编程中涉及到的技术原理十分丰富。为了更好地把并发知识形成一个体系,也鉴于本人目前也没有能力写出这类文章,于是参考几位并发编程方面专家的博客和书籍,做一个简单的整理。

首先说一下我学习Java并发编程的一些方法吧。大概分为这几步:

1、先学会最基础的Java多线程编程,Thread类的使用,线程通信的一些方法等等。这部分内容需要多写一些demo去实践。

2、接下来可以去使用一些JUC的API,比如concurrenthashmap,并发工具类,原子数据类型等工具,在学习这部分内容的时候,你可以搭配一些介绍并发编程的书籍和博客一起看,书籍我当时看的是《Java并发编程艺术》,我觉得略好于《Java并发编程实践》。

我这个专栏里也整合了一些比较好的博客,所以大家可以不妨先看看。

3、接下来就要阅读源码了,读源码部分最主要的就是读JUC包的源码,比如concurrenthashmap,阻塞队列,线程池等等,当然,这些源码自己读起来会比较痛苦,所以建议跟着博客走。

4、走到这一步,你已经理解了Java并发编程原理,并且可以熟练使用JUC,应付面试已经足够了,剩下的事情就是真正把这些东西用到项目中去,我当时在网易实习的时候就用到了JUC的一些内容,不得不说还是挺有意思的。

下面先介绍一下Java并发编程的一些主要内容,我把它分六个部分,大家可以参考这几个部分的内容分别进行学习。

一:并发基础和多线程

首先需要学习的就是并发的基础知识,什么是并发,为什么要并发,多线程的概念,线程安全的概念等。

然后学会使用Java中的Thread或是其他线程实现方法,了解线程的状态转换,线程的方法,线程的通信方式等。

二:JMM内存模型

任何语言最终都是运行在处理器上,JVM虚拟机为了给开发者一个一致的编程内存模型,需要制定一套规则,这套规则可以在不同架构的机器上有不同实现,并且向上为程序员提供统一的JMM内存模型。

所以了解JMM内存模型也是了解Java并发原理的一个重点,其中了解指令重排,内存屏障,以及可见性原理尤为重要。

JMM只保证happens-before和as-if-serial规则,所以在多线程并发时,可能出现原子性,可见性以及有序性这三大问题。

下面的内容则会讲述Java是如何解决这三大问题的。

三:synchronized,volatile,final等关键字

对于并发的三大问题,volatile可以保证可见性,synchronized三种特性都可以保证。

synchronized是基于操作系统的mutexlock指令实现的,volatile和final则是根据JMM实现其内存语义。

此处还要了解CAS操作,它不仅提供了类似volatile的内存语义,并且保证操作原子性,因为它是由硬件实现的。

JUC中的Lock底层就是使用volatile加上CAS的方式实现的。synchronized也会尝试用cas操作来优化器重量级锁。

了解这些关键字是很有必要的。

四:JUC包

在了解完上述内容以后,就可以看看JUC的内容了。

JUC提供了包括Lock,原子操作类,线程池,同步容器,工具类等内容。

这些类的基础都是AQS,所以了解AQS的原理是很重要的。

除此之外,还可以了解一下Fork/Join,以及JUC的常用场景,比如生产者消费者,阻塞队列,以及读写容器等。

五:实践

上述这些内容,除了JMM部分的内容比较不好实现之外,像是多线程基本使用,JUC的使用都可以在代码实践中更好地理解其原理。多尝试一些场景,或者在网上找一些比较经典的并发场景,或者参考别人的例子,在实践中加深理解,还是很有必要的。

六:补充

由于很多Java新手可能对并发编程没什么概念,在这里放一张不错的思维导图,该图简要地提几个并发编程中比要重要的点,也是比较基本的点,在大致了解了这些基础内容以后,才能更好地开展后面详细内容的学习。

上面讲到了学习路线,建议大家先跟着这个路线去看一看本专栏的一些博客,然后再来看下面这部分内容,因为下面的内容是我基于本专栏所有博客进行归纳和总结的,主要是方便记忆和复习,也可以让你把知识点重新过一遍,如果你觉得我的总结不够好,你也可以自己做总结,这也是一种不错的学习方法,话不多少,咱们接着往下看。

这篇总结主要是基于我Java并发技术系列的文章而形成的的。主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点。谢谢

更多详细内容可以查看我的专栏文章:Java并发技术指南









































北京中科白癜风医院有治好的吗
北京看白癜风疗效好专科



转载请注明:http://www.xxcyfilter.com/zyjn/9542.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了