zoukankan      html  css  js  c++  java
  • 【原创】Java并发编程系列1:大纲

    【原创】Java并发编程系列1:大纲

    一个人能力当中所蕴藏的潜能,远超过自己想象以外。

    为什么要学习并发编程

    随着现今互联网行业的迅猛发展,其业务复杂度、并发量也在不断增加,对程序的要求变得越来越高,传统的线性模型也越来越不适用。
    同时,计算机软硬件技术的发展,也为多程序同时执行提供了底层的保证,使得并发编程成为主流。
    “需求端”和“供给端”都为并发编程提供了巨大的应用空间,所以并发编程已经成为一项必备技能。
    而正如开篇所引用《Java并发编程实践》的那句话一样,编写正确的并发程序很难,但是比起并发程序对实际应用的性能提升、用户体验的提升,承受这点折磨是完全有必要的。
    同时,并发编程模型相比于传统的线性编程模型,在设计模式和设计思想上也是有很大区别的。
    可能有些程序员平常的工作并不会显式的并发相关,比如自己去写一个信号量,或者用一个线程池,但是实际上在我们的应用中却是处处都是并发的影子,学好并发编程对日常工作、对技术深造有很大帮助,即使工作中用得少,并发编程也会是面试的重要一部分。

    系统学习并发编程

    编写正确的程序并不容易,而编写正确的并发程序就更难了。 ——《Java并发编程实践》

    并发编程涉及到操作系统的线程知识,Java的并发理论、各种并发框架和工具,以及线程池的使用。
    比如说线程池,如果你不能确定线程池的几个参数的含义,如何能用的好一个线程池呢?
    Java并发编程的知识点繁多分散,要学好它,一定要先有一个整体的认识,要有一个学习脉络,循序渐进。那么就由我来帮助你建立一个清晰的Java并发编程的脉络:

    1. 线程基础:线程是操作系统调度执行任务的最小单位,可以认为是并发编程的核心基础;线程的生命周期,启动和终止;线程间如何通信如何同步;线程死锁是怎么回事;一些重要概念的理解区分。
    2. Java内存模型:Java内存模型的抽象结构;并发要解决的三大问题;Java并发的三大关键字的内存语义和如何正确使用;happens-before规则;重排序;锁究竟是什么;CAS到底是什么。
    3. Java中的锁:Lock接口与synchronized有什么异同点;AQS是什么;重入锁;读写锁;LockSupport的使用;如何优化应用中的锁;
    4. Java并发容器和框架:JUC包下的容器框架ConcurrentHashMap、ConcurrentLinkedQueue、BlockQueue等如何正确使用;Fork/Join框架;ThreadLocal是什么。
    5. Java中的原子操作类:了解Java提供的一系列原子类,及其实现原理,并能正确使用。
    6. Java中的并发工具类:了解JUC包下的倒计时器CountDownLatch、同步屏障CyclicBarrier、控制并发线程数的Semaphore、用于线程间交换数据的Exchanger,了解其实现原理,并能正确使用。
    7. Java中的线程池:了解Java线程池的使用、参数配置、监控等;了解Executor框架下的ThreadPoolExecutor、ScheduleThreadPoolExecutor、FutureTask的使用和原理。
    8. 并发实践:结合以上并发知识进行实践,写出并发性能良好的代码。

    Java并发编程大纲

    这是一个专题,会按照上一节的脉络,讲解Java并发的知识技能。以下的思维导图会作为一个框架指导,希望也能对你的系统学习起到提纲挈领的作用。
    java并发编程

    【参考资料】

    1. 《Java并发编程的艺术》,方腾飞、魏鹏、程晓明著,机械工业出版社;
    2. 《Java并发编程之美》,翟陆续、薛宾田著,电子工业出版社;
    3. 《Java并发编程实践》,Brian Goetz、Time Peierls、Joshua Bloch、Joseph Bowbeer、David Holmes、Doug Lea著,韩错、方妙译,电子工业出版社;
    4. 《Java高并发程序设计》,葛一鸣、郭超编著,电子工业出版社。

    本文由微型公众号【Dali王的技术博客】原创,扫码关注获取更多原创技术文章。
    Dali王的技术博客

  • 相关阅读:
    GPS坐标转百度地图并且加载地图示例.支持微信端访问
    关于vs2013 mysql Ef框架中提示版本不兼容问题的解决办法
    CSS3 关于@font-face引用中文字体解决办法
    登录权限,菜单动态加载,动态渲染功能按钮
    vue-router使用next()跳转到指定路径时会无限循环
    三张图较为好理解JavaScript的原型对象与原型链
    深入javascript之原型和原型链
    vue2.0引入现有css文件
    定制简单的404和403页面
    弹框内画echarts图dom元素无法获取的问题
  • 原文地址:https://www.cnblogs.com/mcbye/p/12521982.html
Copyright © 2011-2022 走看看