Go的Context
go1.7是一个变动非常大的版本。一方面官方引入了Context来管理多个具有明显父级关系的GoRoutine,一方面对原有的代码包进行了大量的修改,让他们都能够支持Context。
我们之前已经讲过一个用来管理,编排多个GoRoutine的包sync.WaitGroup。它能够解决部分场景,但仍然有一些问题未能解决:
go1.7是一个变动非常大的版本。一方面官方引入了Context来管理多个具有明显父级关系的GoRoutine,一方面对原有的代码包进行了大量的修改,让他们都能够支持Context。
我们之前已经讲过一个用来管理,编排多个GoRoutine的包sync.WaitGroup。它能够解决部分场景,但仍然有一些问题未能解决:
本文为极客时间《Go语言核心36讲》的学习笔记,梳理了相关的知识点。
Map数据结构有多种多样的名称:哈希表,散列,字典,Map,键值对,这些都是广义上的Map数据类型。Map类型的数据结构在大多数的编程语言中都有支持,日常使用最多,面试最经常问到的是GO语言中的Map和Redis中的字典。
这是GO语言官方文档的描述:
这一块内容我们只简单提一下,不会展开。相关问题可以直接在网上找资料,非常全面。
在讨论并发之前,必须得先讲清楚并发和并行,以及他们两个之间的区别,还有各自会有哪些常见的问题。这两个名词都是操作系统里的概念:
本文为极客时间《Go语言核心36讲》的学习笔记,梳理了相关的知识点。
通常情况下,我们是肯定不会直接起一个协程开始写逻辑代码的。Go语言已经帮我们写好了各种常用的并发工具,基本都在**sync(同步)**包中,可以开箱即用。
//正常情况下,是不会这样子直接起一个协程做并发业务的。
go func(){
....
}
本文为极客时间《Go语言核心36讲》的学习笔记,梳理了相关的知识点。
Go 语言的切片类型属于引用类型,同属引用类型的还有字典类型、通道类型、函数类型等;而 Go 语言的数组类型则属于值类型,同属值类型的有基础数据类型以及结构体类型。简单的说,数组类型的长度是固定的,而切片类型是可变长的。数组的容量永远等于其长度,都是不可变的。