go语言
全麦小面包
这个作者很懒,什么都没留下…
展开
-
Mutex:4种易错场景大盘点
以下内容摘录整理自《极客时间》晁岳攀(鸟窝)的专栏——《Go 并发编程实战课》。 常见的 4 种错误场景: Lock/Unlock 不是成对出现 Copy 已使用的 Mutex (Mutex是值类型,传递的时候是复制) 重入 (Mutex不是可重入锁) 死锁 补充: 死锁必要的4个条件(破坏其中一个就能避免死锁): 互斥: 至少一个资源是被排他性独享的,其他线程必须处于等待状态,直到资源被释放。 持有和等待:goroutine 持有一个资源,并且还在请求其它 goroutine 持有的资源,也就是咱们原创 2020-10-26 10:43:21 · 240 阅读 · 1 评论 -
GO的Mutex——庖丁解牛看实现
摘录自极客时间专栏原创 2020-10-23 17:23:50 · 398 阅读 · 0 评论 -
Go的数组和切片
数组(array)类型和切片(slice)类型的主要区别: 数组类型的值(以下简称数组)的长度是固定的,而切片类型的值(以下简称切片)是可变长的。 数组的长度在声明它的时候就必须给定,并且之后不会再改变。可以说,数组的长度是其类型的一部分。比如,[1]string和[2]string就是两个不同的数组类型。 而切片的类型字面量中只有元素的类型,而没有长度。切片的长度可以自动地随着其中元素数量的增长而增长,但不会随着元素数量的减少而减小。 我们其实可以把切片看做是对数组的一层简单的封装,因为在每个切片的底层原创 2020-10-23 10:36:06 · 253 阅读 · 0 评论 -
Go变量浅析
Go 语言中的程序实体包括变量、常量、函数、结构体和接口。 变量声明: Go 语言的类型推断可以带来哪些好处? 动态类型编程语言,如Python或Ruby,也有这种类型推断,可以让程序灵活性的明显提升。但在那些编程语言中,这种提升可以说是用程序的可维护性和运行效率换来的。 而Go 语言是静态类型的,所以一旦在初始化变量时确定了它的类型,之后就不可能再改变。这就避免了在后面维护程序时的一些问题。另外,请记住,这种类型的确定是在编译期完成的,因此不会对程序的运行效率产生任何影响。 如果只用一原创 2020-10-22 15:11:51 · 120 阅读 · 0 评论 -
go语言的helloWorld
Go语言诞生背景: 多核硬件架构 超大规模的分布式计算集群 WEB模式导致的产品快速迭代 首先诞生于2007年的谷歌。原创 2020-10-22 11:20:58 · 158 阅读 · 1 评论