哈希表(Map)

内存分配

Go局部变量会进行逃逸分析。如果变量离开作用域后没有被引用,则优先分配到栈上,否则分配到堆上。那么如何判断是否发生了逃逸呢?

go build -gcflags '-m -m -l' xxx.go.

关于逃逸的可能情况:变量大小不确定,变量类型不确定,变量分配的内存超过用户栈最大值,暴露给了外部指针。

协程(Goroutine)

  • 协程是用户态轻量级线程, 它是线程调度的基本单位.
  • 通常在函数前加上go关键字就能实现并.
  • 一个Goroutine会以一个很小的栈启动2KB或4KB, 当遇到栈空间不足时, 栈会自动伸缩, 因此可以轻易实现成千上万个goroutine同时启动.

Select

results matching ""

    No results matching ""