![](https://img-blog.csdnimg.cn/20201105180552825.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
golang
文章平均质量分 80
go语言学习
醉清风_
这个作者很懒,什么都没留下…
展开
-
Asynq 高性能分布式任务队列实践
Asynq 高性能分布式任务队列原创 2022-03-14 00:05:27 · 5194 阅读 · 0 评论 -
golang context 终结(下)——实践篇
概述上篇glang context 终结(上)——源码分析篇站在源码的角度分析了Context ,这篇就具体看下Context怎么使用和注意事项。Context具体使用是围绕着下面四个方法来进行使用的:func WithCancel(parent Context) (ctx Context, cancel CancelFunc)func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc)func WithTi原创 2021-09-12 13:08:55 · 974 阅读 · 0 评论 -
glang context 终结(上)——源码分析篇
概述context包是golang1.6开始提供的上下文包,golang1.7移入到标准库。对于context 只是在使用grpc用到过,但是并没有真正去在自己程序使用过,并不了解其中的使用目的。必须和Context做个了断了。主要作用主要为了解决多个goroutine 多链路相互嵌套无法终止问题(goroutine泄露问题),以及上下文数据共享问题。其实主要还解决goroutine终止问题,一般上下文数据共享用的少。实现实现方式是通过超时时间、截止时间、手动 等方式进行chancel的发送阻塞关原创 2021-09-02 14:28:58 · 907 阅读 · 0 评论 -
掌握golang select IO多路复用
select作用Go里面提供了一个关键字select,通过select可以监听channel上的数据流动。.select的用法与switch语言非常类似,由select开始一个新的选择块,每个选择条件由case语句来描述。与switch语句相比,select有比较多的限制,其中最大的一条限制就是每个case语句后面必须是一个**Io操作** 。大致的结构如下:select{ case <-chan1: //如果chan1成功读到数据,则进行该case处理语句 case ch原创 2021-08-05 17:14:05 · 25761 阅读 · 2 评论 -
指针传引用
上图中main方法中声明了a和b两个变量,然后通过swap2方法完成值交换。很简单的过程。(通过地址值进行引用然后完成交换)图右边是代码的在栈帧的的一个交换过程:大概说一下:首先初始化的main方法在栈帧 有两个内存空间 分别为0xaa00和0xbb00对应a和b的变量地址然后运行到调用swap2 产生栈帧空间,空间内 有x和y两个变量形参。然后swap2(&a,&b) 去地址值的方式把a和b的地址给了swap2方法 ,swap2方法 的*x,*y=*y,*x是做了一个值交换.原创 2021-07-19 17:54:38 · 27786 阅读 · 0 评论