《Concurrency in Go》
Golang是一门静态的,强类型的,高并发的语言,而本书会聚焦在高并发的方面。第一章则从并发的基本内容讲起,大致包括几个方面:
- 什么是并发?
- 并发为什么困难?
- 并发为什么值得研究?
Chapter 1:An Introduction to Concurrency 并发概述
1 从摩尔定律入手,讨论并发从何而来
摩尔定律的内容是众所周知的,大概就是集成电路上的晶体管的数量每两年就会翻一番。
这个定律的起因在于,人类迫切地需要提升单位空间的运算能力,因此穷极一切地去努力提升运算能力。而提升运算能力这一需求又源于当今世界上的存储能力和数据产生量的提高。
但是摩尔定律所预估的速度正在逐步放缓,除非在一段时间以内人类的基础技术能有质的改变。而在这个条件之下应运而生的产物便是:多核处理器。
以多个核心来处理来处理和解决问题,效率相比起以往肯定是提高了的,尤其在问题可以由各个独立的程序构成而不互相影响的情况下更能有所体现,但是Gene Amdhl提出了一条定律:
并行计算的收益的限制取决于有多少程序必须以顺序的方式编写。
也就是说并行计算提升的效率取决于能够独立执行的程序。
云计算,现在的时代的热词。它的思想在时代思潮中根深蒂固,云计算隐含了一种新的规模化的方法,用于应用程序部署和水平扩展。云计算意味着可以访问大量的资源池,它们被自动调配到适当的机器中以满足工作负载需求。
云计算带来的直接后果是开发者获得了大量的运算能力,可以用来解决庞大的问题。
但是云计算的实现并非动动嘴皮子就可以完成的,需要在机器实例之间通信,聚合和存储结果等等,但是最最最困难的莫过于如何设计并行计算的模型
接下来将从设计并行计算模型的角度来分析为什么并