
老鸟学go
文章平均质量分 84
东方宏
一个吃胖了的瘦子
展开
-
老鸟一周玩转go语法--周四
1.使用sync包的Mutex类型来实现互斥锁,多个goroutine同时等待一个锁时,唤醒的策略是随机的。2.当我们并发的去读取一个资源不涉及资源修改的时候是没有必要加锁的,这种场景下使用读写锁是更好的一种选择。读写锁在Go语言中使用sync包中的RWMutex类型。读写锁分为两种:读锁和写锁。当一个goroutine获取读锁之后,其他的goroutine如果是获取读锁会继续获得锁,如果是获取写锁就会等待;当一个goroutine获取写锁之后,其他的goroutine无论是获取读锁还是写锁都会等待。原创 2022-04-08 15:03:27 · 405 阅读 · 0 评论 -
老鸟一周玩转go语法--周三
写在前面:本篇记录实战过程中遇到的各类基础文档语法中没提到过的知识点。1.main函数所在的goroutine就像是影分身的本体,其他的goroutine都是影分身,本体一死影分身也就全部GG了。所以main函数要留出足够的时间让其他协程运行完毕再结束。2.,一个goroutine的栈在其生命周期开始时只有很小的栈(典型情况下2KB),goroutine的栈不是固定的,他可以按需增大和缩小,goroutine的栈大小限制可以达到1GB,虽然极少会用到这个大。所以在Go语言中一次创建十万左右的goro原创 2022-03-31 09:13:41 · 238 阅读 · 0 评论 -
老鸟一周玩转go语法--周二
1.常量是一个简单值【只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型】的标识符,在程序运行时,不会被修改的量,因此定义时就得赋予初始值,所以可以省略类型,由编译器进行推断。多个类型的声明可以简写为:const c_name1, c_name2 = value1, value2。常量表达式的值在编译期计算,而不是在运行期。2.常量还可以用作枚举:const ( Unknown = 0 Female = 1 Male = 2 ).可以用len(), cap(), unsafe.Sizeof()函数原创 2022-03-29 16:51:13 · 253 阅读 · 0 评论 -
老鸟一周玩转go语法--周一
前言:本系列课程,面向有其他高级编程语言的coder。当有兴趣或者有需要使用go的需求时,快速了解上手go的指南。如何安装go sdk和go ide,自行搞定。这里只做两点说明:go是编译型语言,和C不同,C语言没有包的概念。vs-code免费,goland收费,但可以破解。推荐使用goland。知识点:1.所有的go代码都要明确属于哪个包,每个包都是一个可运行的程序,每个go应用程序都必须包含一个main包。每个可执行的程序都必须包含main函数。init函数是初始化函数(可选),在main函原创 2022-03-28 18:39:06 · 501 阅读 · 0 评论