golang context初探

什么是context 从go1.7开始,golang.org/x/net/context包正式作为context包进入了标准库。那么,这个包到底是做什么的呢?根据官方的文档说明: Package context defines the Context type, which carries deadlines, cancelation signals, and other request-scoped values across API boundaries and between proces...阅读全文

阅读:1675 评论:2

聊聊GOPATH、GOROOT

在go语言中环境变量GOPATH和GOROOT需要设置好才可进行开发编译,学过JAVA的朋友理解起来就比较快,这里就这两个变量作个详细的说明,不足之处,请大家批评指正。1. GOROOT简而言之,GOROOT在GO语言中表示的是go语言编译、工具、标准库等的安装路径,在Linux系统中一般安装在/usr/go或者/usr/local/go,这样Linux系统中的PATH变量一般都包含了这两个目录,所以就可以直接运行go命令,而Windows系统中一般默认安装在C:\go中。如果自定义安装go的话...阅读全文

阅读:14270 评论:0

Go Context的踩坑经历

0 引言context是Go中广泛使用的程序包,由Google官方开发,在1.7版本引入。它用来简化在多个go routine传递上下文数据、(手动/超时)中止routine树等操作,比如,官方http包使用context传递请求的上下文数据,gRpc使用context来终止某个请求产生的routine树。由于它使用简单,现在基本成了编写go基础库的通用规范。笔者在使用context上有一些经验,遂分享下。本文主要谈谈以下几个方面的内容:context的使用。context实现原理,哪些是需要注...阅读全文

2019-08-24 17:47:06 包增辉
阅读:32640 评论:4

深度解密Go语言之 scheduler

好久不见,你还好吗?距离上一篇文章已经过去了一个多月了,迟迟未更新文章,我也很着急啊。 跟大家汇报一下,这段时间我在看 proc.go 的源码,其实就是调度器的源码。代码有几千行之多,不像以往的 map,channel 等等。想把这些代码都看明白,是一个庞大的工程。到今天为止,我也不敢说我都看明白了。 要深挖下去的话,会无穷无尽,所以阶段性的探索就到这里。接下来就把这段时间的探索分享出来。 其实,今天这篇文章仅仅算是一个引子,接下来会连续发布十篇系列文章。目录如下: 而这个系列的文章主要是受公众...阅读全文

阅读:1715 评论:0

Go module 再回顾

我曾经写了一篇跳出Go module的泥潭, 记录了使用go module的一些坑,随着Go 1.13版本的发布,go module的功能再不断的演化(或者不委婉的说在不断的修补),go module很多功能也发生了变化,这篇文章记录了新版本(go 1.13)下module的使用方法。 不客气地的说,go module的实现不是一个很成功的功能的添加,首先go module的引入就引入了很大的争议,包括dep等多个go依赖工具的作者颇有微词,其次go module的功能并没有很好的设计就开始引入...阅读全文

阅读:2664 评论:1