昨日有点累,想说打个盹一下,结果醒来就隔天了,铁人赛直接中断。
续上篇,Day9 - 读 Concurrency is not Parallelism - Rob Pike (四)
在上篇 Rob Pike 举了一个简单的 load balancer,在演讲的尾声,他提出了一个更真实的案例。
看下图,大概分成三个部分
定义 Requester
模拟 requester 发出 request
可以看到 work 这个参数用来发出 request,result 用来等待运算的结果
定义 Worker
Worker 工作罗,就做三件事
来设计 load balacer 吧
load balancer 需要计算优先权,使用到了 Heap 资料结构,并使用 worker 的 pending 计算优先权
Load balancer 要做的事情概念很简单。 回想一下一开始的设计图:
load balancer 派发工作的实作:
load balancer 接收到 woker 做完工作後的实作:
这个例子学到了:
这边 Rob Pike 又讲了一个小小的例子我就略过了,直接到结论:结论相当的简单而且微言大义,留给自己去体会罗。
以往都是从 CPU 的观点去解读 concurrency 和 Parallelism,但 Rob Pike 从另一个观点切入 ,直接给出了 Programming as the composition of independently executing processes
的观点,使用 gopher 烧书的例子带你了解 concurrency 设计。最後直接带你一步一步设计一个 load balancer,将一个复杂的问题切割成简单的子问题,并且使用 go 的 concurrnecy 完成这个漂亮的设计。这场演讲,这个观点和结论,只能佩服 Rob Pike 这个大师级人物。
Day12 - Kotlin的集合 我今天要讲的是Kotlin的集合,今天就稍微讲一下集合List,...
不怎麽重要的前言 上一篇我们介绍了scanf的用法,虽然可能会有点小混乱,但应该不至於太难理解? 接...
今天是 Composite 单元的最後一篇,既前两篇看了基本属性、建构方法後,最後一篇要来看 Com...
当我们网页建立了基本的authentcation,接着就能开始建立我们的功能,首先在web上的htm...
前言 一个网站要让他更完整,势必就需要当使用者进入网站时,先进行读取,但由於技术成分不足,只好先做...