Java并发13:阶段小结


Java并发13:阶段小结

逐篇梳理

整个前13篇文章是个串行进行的,循序渐进的学习逻辑,主要讲的都是并发方向的理论知识

0-并发问题核心点:

宏观地梳理了下并发问题的核心点:分工同步互斥。解决并发问题主要要做这3个模块。

1-并发问题源头:

因CPU&内存&I/O存在效率差异,因此产生了CPU做线程切换。

因为线程切换,导致了可见性有序性原子性三个并发问题的源头。

2-Happens-Before规则

JVM通过Happens-Before解决了可见性有序性问题。

3-互斥锁(上)&4-互斥锁(下):

JVM通过加锁机制解决了原子性问题。

5-死锁:

因为加锁导致程序出现死锁,所以引出其解决方法。

6-等待通知机制:

因为线程争夺锁的关系和死锁等问题的存在,因此需要利用等待通知机制实现线程协作。

7-安全性&活跃性和性能问题:

1-6从微观角度看并发问题。

7则是从宏观看:

  • 安全性:数据竞争竞态条件
  • 活跃性:死锁,活锁和饥饿问题
  • 性能:锁带来等性能问题,评估性能

8-管程:

Java并发编程解决互斥和同步的核心基础理论

以上关于并发的理论基础基本上全覆盖了,接下来具体到Java上。

9-Java线程生命周期

Java线程基础,开发必备知识。

10-线程数量

如何根据场景估算线程数量。

11-局部变量

明确了方法执行过程,明确了局部变量不存在线程安全问题。

12-面向对象与并发

如何利用面向对象更好地实现并发。

思维导图

并发编程理论基础模块思维导图


文章作者: Wendell
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Wendell !
评论
  目录