苏州列举网 > 教育培训 > 电脑/网络 > 苏州Java培训学校哪家好
苏州
[切换城市]

苏州Java培训学校哪家好

更新时间:2019-09-17 16:36:45 浏览次数:70次
区域: 苏州 > 虎丘 > 浒墅关
类别:软件工程师培训
地址:浒关汇融广场413室
Java并发编程一直是Java程序员必须懂但又是很难懂的技术内容。

  这里不仅仅是指使用简单的多线程编程,或者使用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新手可能对并发编程没什么概念,在这里放一篇不错的总结,简要地提几个并发编程中比要重要的点,也是比较基本的点吗,算是抛砖引玉,开个好头,在大致了解了这些基础内容以后,才能更好地开展后面详细内容的学习。
苏州电脑/网络相关信息
注册时间:2019年08月28日
UID:637374
---------- 认证信息 ----------
手机已认证
查看用户主页