并发编程专题开篇

自认为还算是一个技术爱好者(软件相关)。不管是在学校还是在工作岗位上,都一直保持买书,看书的这样一个优良习惯。除了保持内心沉(zhuang)静(bi),更重要的是我能系统深入学到很多东西。

但是自从患上拖延症和懒癌之后,我学到的很多东西都藏在肚子里,最后烂在肚子里了,也就白学了。因此,我决定,未来4个月好好总结和回顾过去学到的东西,并且以专题的形式总结和分享出来(尽最大努力酿酒,巷子深浅与否看造化了)。

9月和10月(2016)我想总结和分享的专题是Java编程里最具有挑战性的一个----并发编程。

根据我对并发编程的理解,我将深入浅出,由表入里,步步为营将并发编程分成这样13篇文章来讲解。当然,这远远不是并发编程的全部。很多知识点我也只能说一个思路或者大概样貌,不可能面面俱到。下面是我暂时拟出的一个讲解框架:

  1. 并发编程历史观

    这里主要说一下并发编程的由来,一些基本概念和术语。同时会从宏观(分布式)和微观(多线程)谈一下并发。最后,展望一下未来,说一下协程。

  2. Java并发编程的基本手段

    实现Java多线程的手段以及基本用法(Thread,Runnable,Callable),static,final等对线程安全的意义

  3. 多线程带来的线程安全和线程通信问题

    引出临界区,数据竞争以及线程通信模型,深入讲解线程通信的方法(分析ThreadLocal类)以及意义

  4. 深入理解原子性与可见性

    因为多线程通信问题,可能引发原子性和可见性等问题,从Java语言层面讲解原子性和可见性

  5. 深入理解Java内存模型(JMM)

    继续深入,理解JMM,从JMM角度深入理解synchronized和volatile

  6. J.U.C概述

    JDK并发工具包介绍,从该包的结构以及功能上做一个概述,为后面的分解铺垫思路

  7. 深入J.U.C中的锁

    深入分析Java语言层面提供的锁机制以及实现原理,对比分析synchronized的异同和优劣

  8. 深入J.U.C中Executor框架

    深入分析Java中线程池,比较分析4中线程池的异同以及用法

  9. 深入J.U.C中并发容器类

    简单分析各个容器类的作用和用法,重点分析ConcurrentHashMap

  10. 深入J.U.C中原子类

    简单分析各种原子类的用法以及作用,重点分析CAS操作的实现以及底层机制

  11. 深入J.U.C中并发工具类

    简单分析各个工具类的用法以及作用,重点分析CountDownLatch和CyclicBarrier

  12. 并发编程总结

    总结这个专题的意义以及不足,说一下并发的测试思路

这个思路从简单到复杂,基本是按照并发编程学习的思路来的。当然,各个章节也很独立。可以作为单独的复习或学习参考。希望这个专题能给自己和他人带来知识上的梳理与巩固。
Good Luck to you and me!

首发我的个人博客:http://wantedonline.cn

posted on 2016-09-08 16:46  王诚  阅读(229)  评论(0编辑  收藏  举报

导航