会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
hxzhouh
Hello,World
博客园
首页
新随笔
联系
订阅
管理
2020年4月26日
聊聊sync.cond
摘要: Cond的主要作用就是获取锁之后,wait()方法会等待一个通知,来进行下一步锁释放等操作,以此控制锁合适的释放,释放频率等。适用于在并发环境下goroutine的等待和通知。 本文基于源码 113.5 例子 先来个例子看看cond 的用法 https://play.golang.org/p/7Jr
阅读全文
posted @ 2020-04-26 17:10 hxzhouh
阅读(681)
评论(0)
推荐(0)
2020年3月19日
聊聊context
摘要: 介绍 在go服务中,每个请求都在自己的goroutine中运行,请求处理handler 通常会启用额外的goroutine来处理如数据库访问、rpc请求等任务。处理请求的goroutine集合通常需要访问特定于请求的值,例如最终用户的身份,授权令牌和请求的期限。 当一个请求被取消或超时时,处理该请求
阅读全文
posted @ 2020-03-19 22:15 hxzhouh
阅读(289)
评论(0)
推荐(0)
2020年3月12日
高性能Go并发建议
摘要: 管道chan吞吐极限10,000,000,单次Put,Get耗时大约100ns/op,无论是采用单Go程,还是多Go程并发(并发数:100, 10000, 100000),耗时均没有变化,Go内核这对chan进行优化。 解决之道 :在系统设计时,避免使用管道chan传递主业务数据,避免将业务流程处理流程分割到对个Go程中执行,这样做减少chan传输耗时,和Go程调度耗时,性能会有很大的提升。 ...
阅读全文
posted @ 2020-03-12 22:25 hxzhouh
阅读(257)
评论(0)
推荐(0)
聊聊Redis SDS
摘要: 聊聊Redis SDSSDS全拼为:simple dynamic string,解释为:简单动态字符串 C语言字符串使用长度为n+1的字符数组来表示长度为n的字符串,并且字符数组的最后一个元素总是空字符'\0',因为这种字符串表示方式不能满足Redis对字符串在安全性、效率以及功能方面的要求,所以Redis自己构建了SDS,用于满足其需求。在Redis里,C语言字符串只用于一些无须对...
阅读全文
posted @ 2020-03-12 22:13 hxzhouh
阅读(423)
评论(0)
推荐(0)
Golang定时器实现
摘要: Golang定时器实现 这篇文章简单的介绍下golang time 包下定时器的实现,说道定时器,在我们开发过程中很常用,由于使用的场景不同,所以对定时器实际的实现也就不同,go的定时器并没有使用SIGALARM信号实现,而是采取最小堆的方式实现(源码包中使用数组实现的四叉树),使用这种方式定时精度很高,但是有的时候可能我们不需要这么高精度的实现,为了更高效的利用资源,有的时候也会实现一个...
阅读全文
posted @ 2020-03-12 22:05 hxzhouh
阅读(421)
评论(0)
推荐(0)
公告