随笔分类 -  Go

Go学习历程
摘要:相比于Mutex来说,RWMutex锁的粒度更细,使用RWMutex可以并发读,但是不能并发读写,或者写写。 1. sync.RWMutex的结构 type RWMutex struct { // 互斥锁 w Mutex // held if there are pending writers // 阅读全文
posted @ 2021-04-28 18:23 卷毛狒狒 阅读(79) 评论(0) 推荐(0) 编辑
摘要:Mutex是go标准库中的互斥锁,用于处理并发场景下共享资源的访问冲突问题。 1. Mutex定义: // A Mutex is a mutual exclusion lock. // The zero value for a Mutex is an unlocked mutex. // // A 阅读全文
posted @ 2021-04-28 16:01 卷毛狒狒 阅读(110) 评论(0) 推荐(0) 编辑
摘要:一般程序的内存分配,从高位到低位依次为 全局静态区:用于存储全局变量、静态变量等;这部分内存在程序编译时已经分配好,由操作系统管理,速度快,不易出错。 栈:函数中的基础类型的局部变量;由程序进行系统调用向操作系统申请,由操作系统管理,速度快。每个线程有自己的栈区。 堆:使用malloc或new申请的 阅读全文
posted @ 2021-04-22 18:39 卷毛狒狒 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:map的数据结构在 runtime/map.go 中定义。 type hmap struct { // Note: the format of the hmap is also encoded in cmd/compile/internal/gc/reflect.go. // Make sure t 阅读全文
posted @ 2021-04-21 19:21 卷毛狒狒 编辑
摘要:相比于List,环的结构有些特殊,环的头部就是尾部,所以每个元素可以代表自身这个环。环其实是一个双向回环链表。type Ring struct { next, prev *Ring Value interface{} // for use by client; untouched by this l 阅读全文
posted @ 2021-04-19 17:15 卷毛狒狒 阅读(138) 评论(0) 推荐(0) 编辑
摘要:container/list实际上是一个双向链表。 // Element is an element of a linked list.type Element struct { // Next and previous pointers in the doubly-linked list of e 阅读全文
posted @ 2021-04-19 16:29 卷毛狒狒 阅读(98) 评论(0) 推荐(0) 编辑
摘要:container/heap container/heap包对通用堆进行了定义并实现了标准堆操作函数,以此为基础可以很容易对各类堆和优先队列进行实现。 堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或 阅读全文
posted @ 2021-04-19 15:43 卷毛狒狒 阅读(139) 评论(0) 推荐(0) 编辑
摘要:Context通常被称为上下文,在go中,理解为goroutine的运行状态、现场,存在上下层goroutine context的传递,上层goroutine会把context传递给下层goroutine。 每个goroutine在运行前,都要事先知道程序当前的执行状态,通常将这些状态封装在一个 c 阅读全文
posted @ 2021-02-24 10:41 卷毛狒狒 阅读(16992) 评论(0) 推荐(0) 编辑
摘要:1. go select是一种仅能用于channel发送和接收消息的语句,此语句运行期间是阻塞的;当 select中没有case语句的时候,会阻塞当前goroutine 2. select是go在语言层面提供的IO多路复用机制,专门用于检测多个channel是否准备完毕:可读可写 3. select 阅读全文
posted @ 2021-02-23 16:53 卷毛狒狒 阅读(4360) 评论(0) 推荐(0) 编辑
摘要:WaitGroup的核心机制是通过计数器记录被等待的goroutine的数目,当所有goroutine退出后计数器清零,同时通过信号量机制通知Wait函数解除阻塞。WaitGroup内部有两个计数器,可以称为v和w, v记录了被等待的goroutine的数目,WaitGroup的Add()和Done 阅读全文
posted @ 2021-02-23 16:19 卷毛狒狒 阅读(496) 评论(0) 推荐(0) 编辑
摘要:简单的工厂模式,又称为静态工厂方法,它属于类创建型模式。在简单工厂模式中,可以根据参数创建不同的实例。简单工厂模式专门定义一个类来创建其他类的实例。 优点 工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对 阅读全文
posted @ 2021-01-25 19:27 卷毛狒狒 阅读(192) 评论(0) 推荐(0) 编辑
摘要:操作系统根据资源访问权限的不同,体系架构可以分为用户空间和内核空间;内核空间主要操作访问CPU资源,IO资源,内存资源等硬件资源,为应用程序提供最基本的基础资源;用户空间是上层应用程序的固定活动空间,用户空间不能直接访问内核空间,必须通过系统调用,库函数或者shell脚本来调用内核空间提供的资源。 阅读全文
posted @ 2021-01-25 17:57 卷毛狒狒 阅读(199) 评论(0) 推荐(0) 编辑
摘要:先上代码 func In(haystack []interface{}, needle interface{}) (bool, error) { sVal := reflect.ValueOf(haystack) kind := sVal.Kind() if kind == reflect.Slic 阅读全文
posted @ 2021-01-19 20:13 卷毛狒狒 阅读(92) 评论(0) 推荐(0) 编辑
摘要:在 gin中,通过默认的函数,构建一个实现了带默认中间件的 *Engine。 r := gin.Default() 默认绑定了Logger和Recovery中间件,帮助我们进行日志输出和错误处理。 func Default() *Engine { debugPrintWARNINGDefault() 阅读全文
posted @ 2021-01-14 17:19 卷毛狒狒 阅读(407) 评论(0) 推荐(0) 编辑
摘要:https://draveness.me/golang-101/ 阅读全文
posted @ 2021-01-14 14:35 卷毛狒狒 阅读(88) 评论(0) 推荐(0) 编辑
摘要:package main import ( "github.com/gin-gonic/gin" ) type User struct { Id int `json:"id"` Name string `json:"name"` Age int `json:"age"` } func main() 阅读全文
posted @ 2021-01-14 13:57 卷毛狒狒 阅读(190) 评论(0) 推荐(0) 编辑
摘要:package mainimport ( "github.com/gin-gonic/gin")func main() { router := gin.Default() v1RouterGroup := router.Group("/v1") { v1RouterGroup.GET("/users 阅读全文
posted @ 2021-01-14 13:50 卷毛狒狒 阅读(303) 评论(0) 推荐(0) 编辑
摘要:curl http://127.0.0.1:8080/users -X POST -d 'name=juanmaofeifei&age=10' package main import ( "github.com/gin-gonic/gin" "strconv" ) func main() { rou 阅读全文
posted @ 2021-01-14 11:58 卷毛狒狒 阅读(187) 评论(0) 推荐(0) 编辑
摘要:GET url: http://127.0.0.1:8080/users?id=1&name=卷毛狒狒 package mainimport ( "github.com/gin-gonic/gin" "strconv")func main() { router := gin.Default() ro 阅读全文
posted @ 2021-01-14 11:46 卷毛狒狒 阅读(172) 评论(0) 推荐(0) 编辑
摘要:GET url: http://127.0.0.1:8080/users/{id} http://127.0.0.1:8080/users/1 对于id值的获取 package main import ( "github.com/gin-gonic/gin" ) func main() { rout 阅读全文
posted @ 2021-01-13 20:24 卷毛狒狒 阅读(307) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示