Golang协程调度二:协程切换原理

---- *概述* ---- 协程是Golang中的轻量级线程,麻雀虽小五脏俱全,Golang管理协程时也必然会涉及到协程之间的切换:阻塞的协程被切换出去,可运行的协程被切换进来。我们在本章节就来仔细分析下协程如何切换。 *TLS* thread local storage: *getg()* goget()用来获取当前线程正在执行的协程g。该协程g被存储在TLS中。 *mcall()* mcall在golang需要进行协程切换时被调用,用来保存被切换出去协程的信息,并在当前线程的...阅读全文

2017-10-05 17:01:53 丁凯
阅读:12040 评论:0

Go Modules 的使用方法 —— Go 官方博文

## 简介 Go 1.11 和 1.12 引入了[对 modules(模块)的初步支持](https://golang.org/doc/go1.11#modules),这是一个能让依赖项的版本信息更加明确和易于管理的依赖管理系统。本文旨在为你使用模块提供基本的操作指导。后续会有一篇文章来说明如何发布一个模块以供别人使用。 一个模块是一系列 [Go 代码包](https://golang.org/ref/spec#Packages) 的集合,它们保存在同一个文件树中。文件树的根目录中包...阅读全文

2019-03-28 20:37:18 Alex-liutao
阅读:5871 评论:4

golang echo 框架路由分析

几个问题 在分析之前,带着问题去查找答案。 官方 http 包已经提供了server的功能,为什么要用框架? 路由注册 简单的程序 我们来看看 echo 的三种匹配模式和优先级顺序匹配,优先级从下到下: Static (固定路径) 类似于/users/new Param (参数路径) 类似于/users/:id Match any (匹配所有) 类似于/users/1/files/* 看到这些模式,http 自带的路由只支持 固定路径 和 匹配所有的模式。这也是提高的地方。 我们来写个例子覆盖 ...阅读全文

2019.06.05 23:31* 咔叽咔叽_
阅读:1295 评论:0