Goroutine和Channel
本文将简要介绍golang中的并发和线程间通信机制,主要围绕goroutine和channel展开。并通过两个demo说明二者的具体使用方法。通过channel我们可以实现lock free的数据结构,这在的第二个demo中会有所体现。 参考书目:《Go语言圣经》、《Go语言高级编程》 Golang并发 如今,Web服务器每时每刻都会处理成千上万的请求,而Go语言通过其轻量级的并发单元——Goroutine可以实现非常强大的并发性能。Goroutine的创建成本极低、内存占用极少,同时,Goroutine运行在用户态下,所以Goroutine间的切换无需繁杂的上下文切换,这些特性都铸就了Golang适合高并发的特性。Goroutine通过Channel来进行相互之间的安全通信,这种通信方式体现了Golang的并发编程哲学:不要通过共享内存来通信,而应通过通信来共享内存。 Go语言的并发体系理论是CSP(Communicating Sequential...
MapReduce浅析
本文将详细介绍由Google提出的一种用于大规模数据集并行处理的编程模型和计算框架——MapReduce,该框架目前已经很少被用在生产环境中,但其背后的基本思想仍然在现代大数据处理技术中占有重要地位 论文参考:《MapReduce: Simplified Data Processing on Large...