您的位置:首页 > 编程语言

并发编程专题开篇

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

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

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

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

并发编程历史观

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

Java并发编程的基本手段

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

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

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

深入理解原子性与可见性

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

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

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

J.U.C概述

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

深入J.U.C中的锁

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

深入J.U.C中Executor框架

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

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

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

深入J.U.C中原子类

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

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

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

并发编程总结

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

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

Good Luck to you and me!

首发我的个人博客:http://wantedonline.cn
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: