随笔分类 - Go
摘要:Go 笔记之如何防止 goroutine 泄露 概述 Go 的并发模型与其他语言不同,虽说它简化了并发程序的开发难度,但如果不了解使用方法,常常会遇到 goroutine 泄露的问题。虽然 goroutine 是轻量级的线程,占用资源很少,但如果一直得不到释放并且还在不断创建新协程,毫无疑问是有问题
阅读全文
摘要:从Deadlock报错理解Go channel机制(一) 参考:http://blog.csdn.net/kjfcpua/article/details/18265441 Go与其他语言不一样,它从语言层面就已经支持并发,不需要我们依托Thread库新建线程。Go中的channel机制使我们不用过多
阅读全文
摘要:1 介绍 经常会看到以下了代码: package main import ( "fmt" "time" ) func main(){ for i := 0; i < 100 ; i++{ go fmt.Println(i) } time.Sleep(time.Second) } 主线程为了等待gor
阅读全文
摘要:转载:Golang中切片的用法与本质详解 前言 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大 Go的切片类型为处理同类型数据序列提供一个方便而高效的
阅读全文
摘要:Golang指针 参考视频:https://www.bilibili.com/video/av885044833/ 1.1 概念 指针,是一种数据类型,用于表示数据的内存地址。 //声明一个 字符串类型变量(默认初始化的为空字符串) var v1 string //声明一个 字符串的指针类型 的变量
阅读全文
摘要:参考:https://blog.csdn.net/fanguohao/article/details/108754471(仅作学习用途) 前言 结构体是众多属性的集合,每个属性都有其类型和值。在对结构体的使用中,结构体的初始化必不可少,本文列举Go中主要的几种初始化方法及示例,最后从内存分配角度分析
阅读全文
摘要:文章参考:https://www.cnblogs.com/phpper/p/11984161.html(仅用于学习,无任何其它用途) defer的延迟调用: defer特性: 1. 关键字 defer 用于注册延迟调用。 2. 这些调用直到 return 前才被执。因此,可以用来做资源清理。 3.
阅读全文
摘要:golang 切片cap与len package main import "fmt" func main() { slice := make([]int, 10, 20) //定义slice的 len 10 cap 20 fmt.Printf("%p \n", slice) // slice 指针地
阅读全文

浙公网安备 33010602011771号