随笔分类 -  golang

摘要:[toc] Go routine 编排框架:oklog/run 包 1. 问题引入 oklog/run 包提供了一套非常简单、易用的 Go routine 编排框架。在介绍 oklog/run 前,我们先考虑以下问题: 假设我们有四个 Go routine 组件,如图所示,分别是运行一个状态机 sm 阅读全文
posted @ 2019-10-17 22:37 黄挤挤 阅读(3276) 评论(0) 推荐(0)
摘要:[toc] Golang 接口与反射知识要点 这篇文章以 Go 官方经典博客 "The Laws of Reflection" 为基础,详细介绍文中涉及的知识点,并有所扩展。 1. 接口类型变量 首先,我们谈谈接口类型的内存布局(memory layout),其他基础类型、Struct、Slice、 阅读全文
posted @ 2019-10-04 03:48 黄挤挤 阅读(976) 评论(0) 推荐(0)
摘要:简析 Golang IO 包 io 包提供了 I/O 原语(primitives)的基本接口。io 包中定义了四个最基本接口 Reader、Writer、Closer、Seeker 用于表示二进制流的读、写、关闭和寻址操作。这些原语和接口是对底层操作的封装,因此如没有特殊说明,这些原语和接口都不能被 阅读全文
posted @ 2019-09-26 23:25 黄挤挤 阅读(746) 评论(0) 推荐(0)
摘要:net/http 包涵盖了与 HTTP 请求发送和处理的相关代码。虽然包中定义了大量类型、函数,但最重要、最基础的概念只有两个:ServeMux 和 Handler。 ServeMux 是 HTTP 请求多路复用器(即路由器,HTTP request router),记录着请求路由表。对于每一个到来 阅读全文
posted @ 2019-08-25 23:35 黄挤挤 阅读(846) 评论(0) 推荐(0)
摘要:Golang Context 包详解 0. 引言 在 Go 语言编写的服务器程序中,服务器通常要为每个 HTTP 请求创建一个 goroutine 以并发地处理业务。同时,这个 goroutine 也可能会创建更多的 goroutine 来访问数据库或者 RPC 服务。当这个请求超时或者被终止的时候 阅读全文
posted @ 2019-08-03 23:50 黄挤挤 阅读(1420) 评论(0) 推荐(0)