Go 并发模型:管道和取消

简介 Golang的原子并发特性使得它很容易构造流数据管道,这使得Golang可有效的使用I/O和多CPU特性。本文提出一些关于管道的示例,在这个过程中突出了操作失败的微妙之处和介绍处理失败的具体技术。 什么是管道 在Golang对于管道没有明确的定义;它只是许多种并发程序中的一种。管道是通道连接的一系列阶段, 每个阶段是一组goroutine运行相同的功能。在每个阶段,goroutine运行步骤为: 从上游经过入境通道接受值 对数据执行一些功能操作,通常会产生新的值 从下游经过出境通道发送值 ...阅读全文

2014-10-10 08:00:02 漠天, 徐继开, yxrykd 等
阅读:9967 评论:1

Go语言内存分配器的实现

前几天断断续续的写了3篇关于Go语言内存分配器的文章,分别是Go语言内存分配器设计、Go语言内存分配器-FixAlloc、Go语言内存分配器-MSpan,这3篇主要是本文的前戏,其实所有的内容本可以在一篇里写完的,但内容实在太多了,没精力一口气搞定。本文将把整个内存分配器的架构以及核心组件给详细的介绍一下,当然亲自对照着翻看一下代码才是王道。 内存布局结构图 我把整个核心代码的逻辑给抽象绘制出了这个内存布局图,它基本展示了Go语言内存分配器的整体结构以及部分细节(这结构图应该同样适用于tcmal...阅读全文

阅读:6095 评论:0

gf框架之服务注册 - 框架核心组件,比你以为的更强大

文章来源:http://gf.johng.cn/494368 当用户访问某个URI时,Web Server能够精确的调用特定的服务接口提供服务,这些都是通过“服务注册”来实现的。Web Server提供服务需要回调函数/方法/对象/控制器的支持,ghttp包支持多种服务注册模式,为开发者提供非常强大和灵活的接口功能。服务注册是整个Web Server最核心的部分,也是gf框架中最精心设计的一个模块。本章节将会进行详细介绍。 服务注册管理由ghttp包提供,API文档地址:https://godo...阅读全文

2018-04-10 16:34:54 John
阅读:1536 评论:0