Java 并发编程学习 - 概述

  看薛兆丰的《经济学通识》,他总结到,人类面临着四大基本约束:东西不够,生命有限,互相依赖,需要协调。当我看到这句话的时候,我猛然间意识到:计算机也同样面临着这四大基本约束。
  在计算中,CPU、内存、IO、硬盘、带宽等,这些资源也都有不够的时候,而每个线程的也有着自己的生命周期,并且它们之间又是相互依赖的,也同样需要协调。有了上面的这种想法,我觉得我学习计算机的知识有了章法可循。

并发编程知识全景图
并发编程全景图之思维导图

并发编程领域可以抽象成三个核心问题:分工、同步和互斥。

分工

类似于现实中一个组织完成一个项目,项目经理要拆分任务,安排合适的成员去完成。

同步

每个小任务间可能存在相互依赖,同步需要做的是在前置任务完成后,通知后置任务启动。

互斥

互斥主要解决正确性问题。互斥要求同一时间,只允许一个线程访问共享变量。

学习方法论: 我认为工程上的解决方案,一定要有理论做基础。「跳出来,看全景」 和 「钻进去,看本质」,这两条方法论,我想是适合很多领域的学习的。

Reference: 极客时间-Java并发编程实战  

-------------本文结束感谢您的阅读-------------
Thank you for your encouragement