上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 198 下一页
摘要: 数组下标越界(运行时错误) package main import "fmt" func main() { var s []string fmt.Println(s) fmt.Println(s[0]) } 运行结果: [] panic: runtime error: index out of ra 阅读全文
posted @ 2021-09-14 07:30 brady-wang 阅读(493) 评论(0) 推荐(0) 编辑
摘要: golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全 可知。如果变量通过了这些校验,它就可以在栈上分配。否则就说它 逃逸 了,必须在 堆上分配。 能引起变量逃逸到堆上的典型情况:  在方法内把局部变量指针返回 局部变量原本应该在栈中分配,在栈中回收。但是由 于返回时被 阅读全文
posted @ 2021-09-13 23:08 brady-wang 阅读(100) 评论(0) 推荐(0) 编辑
摘要: package main import "fmt" const ( a = iota b = iota ) const ( name = "menglu" c = iota d = iota ) func main() { fmt.Println(a) fmt.Println(b) fmt.Prin 阅读全文
posted @ 2021-09-13 22:22 brady-wang 阅读(94) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup out := make(chan int) wg.Add(2) go func() { defer wg.Done() for i := 1; i <= 阅读全文
posted @ 2021-09-13 22:02 brady-wang 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 你好,我是鸟窝。 在前面的四节课中,我们学习了第一个同步原语,即Mutex,我们使用它来保证读写共享资源的安全性。不管是读还是写,我们都通过Mutex来保证只有一个goroutine访问共享资源,这在某些情况下有点“浪费”。比如说,在写少读多的情况下,即使一段时间内没有写操作,大量并发的读访问也不得 阅读全文
posted @ 2021-09-13 21:43 brady-wang 阅读(688) 评论(0) 推荐(0) 编辑
摘要: package main import ( "fmt" ) type People struct{} func (p *People) ShowA() { fmt.Println("showA") p.ShowB() } func (p *People) ShowB() { fmt.Println( 阅读全文
posted @ 2021-09-13 21:31 brady-wang 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 那么go语言的局部变量到底是在栈上还是堆上呢?go语言编译器会做逃逸分析(escape analysis),分析局部变量的作用域是否逃出函数的作用域,要是没有,那么就放在栈上;要是变量的作用域超出了函数的作用域,那么就自动放在堆上。所以不用担心会不会memory leak,因为go语言有强大的垃圾回 阅读全文
posted @ 2021-09-13 19:10 brady-wang 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 前面我们在学习Mutex、RWMutex等并发原语的实现时,你可以看到,最底层是通过atomic包中的一些原子操作来实现的。当时,为了让你的注意力集中在这些原语的功能实现上,我并没有展开介绍这些原子操作是干什么用的。 你可能会说,这些并发原语已经可以应对大多数的并发场景了,为啥还要学习原子操作呢?其 阅读全文
posted @ 2021-09-13 10:12 brady-wang 阅读(1369) 评论(0) 推荐(0) 编辑
摘要: 在这节课正式开始之前,我想先带你看一个工作中的场景。 假设有一天你进入办公室,突然同事们都围住你,然后大喊“小王小王你最帅”,此时你可能一头雾水,只能尴尬地笑笑。为啥呢?因为你缺少上下文的信息,不知道之前发生了什么。 但是,如果同事告诉你,由于你业绩突出,一天之内就把云服务化的主要架构写好了,因此被 阅读全文
posted @ 2021-09-13 10:04 brady-wang 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 线程是一种轻量级进程,是CPU调度的最小单位。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属于一个进程的其他线程共享进程所拥有的全部资源。线程拥有自 阅读全文
posted @ 2021-09-12 11:18 brady-wang 阅读(1898) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 198 下一页