
go语言
文章平均质量分 73
hunyxv
这个作者很懒,什么都没留下…
展开
-
zrpc --- 一款简单易用的 RPC 框架
zrpc简介zrpc 是一款简单易用的 RPC 框架。其支持以下4种请求类型的 RPC 方法:请求-响应流式请求流式响应双向流式zrpc 依赖 ZeroMQ 库安装 zeromq, 在 release 下载并编译安装:tar -zxvf zeromq-4.x.x.tar.gzcd zeromq-4.x.x./configuremake && make install # 编译后生成的库文件 在目录 /usr/local/lib 下,将其移动到 /usr/lib原创 2022-04-20 15:26:37 · 1346 阅读 · 1 评论 -
赫夫曼树 和 赫夫曼树编码
赫夫曼树代码在:github.com赫夫曼(Huffman)树,又称最优树,是一类带权路径长度最短的树。树的路径和路径长度:从树中一个节点到另一个节点之间的分支构成这两个节点之间的路径,路径上的分支数目乘坐路径长度。树的路径长度是从树根到每一个节点的路径长度之和。带权路径长度:从该节点到树根之间的路径长度与节点上权的乘积,树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作: $ WPL=\sum_{k = 1}^{n}w_kl_k $。例如下面三颗树的路径长度为:(a) WPL原创 2021-04-30 18:18:49 · 333 阅读 · 1 评论 -
golang 设计模式(创建型模式, 结构型模式,行为型模式)
七大原则开闭原则依赖倒置原则(依赖反转原则)单一职责原则接口隔离原则迪米特法则里氏代换原则合成复用原则创建型模式简单工厂模式工厂模式抽象工厂模式结构型模式适配器模式装饰者模式&装饰器外观模式组合模式享元模式桥接模式代理模式行为型模式责任链模式命令模式观察者模式解释器模式状态模式策略模式模板模式迭代器模式中介者模式备忘录模式原创 2020-12-07 15:21:08 · 720 阅读 · 0 评论 -
fasthttp 是如何启动 goroutine 来处理请求的
首先,在 fasthttp 中大量的使用了 sync.Pool 来缓存某些对象,已达到对象复用、减小 GC 压力的目的。 fasthttp 并不像官方 net/http 一样,创建一个 gorountine 来处理一个 http 请求,而是创建可复用的 gorountine ,并且数量会随着负载的大小伸缩。查看自动伸缩如何实现的从 fasthttp.ListenAndServe 入手:func (s *Server) ListenAndServe(addr string) error { ln原创 2020-07-06 14:11:46 · 476 阅读 · 0 评论 -
context: goroutine 上下文
文章目录Context 接口context 包中包含如下几种衍生的子 Context使用 context.WithCancel 控制子 groutine 结束通过 context.WithValue 来传值超时取消 context.WithTimeout截止时间 context.WithTimeout 和 超时时间类似控制多层 goroutine 结束Context 接口type Context interface { // 最后期限 返回期限时间 ok Deadline() (dea原创 2020-06-11 23:43:56 · 634 阅读 · 0 评论 -
go test 单元测试
文章目录go test [flag] flag 有:打印/报告T 类型 普通测试用例B 类型 压力测试测试控制台输出的例子补充覆盖率使用Short标记可跳过的测试用例go test [flag] flag 有:go help testflag 查看有那些 flag:-args: 测试函数接收命令行参数,注意:该参数后所有参数会被当做命令行参数传递给测试用例,正确使用方式举例:go test -v -run TestFibOnce b_test.go -args "in 7" expected=13;原创 2020-06-09 00:42:38 · 755 阅读 · 0 评论 -
线程模型 与 gorountine 的关系
文章目录用户级线程模型内核级线程模型两级线程模型Goroutinegoroutine 的调度线程的实现模型主要有3种:内核级线程模型、用户级线程模型 和 两级线程模型(也称混合型线程模型),它们之间最大的差异就在于用户线程与内核调度实体(KSE,Kernel Scheduling Entity)之间的对应关系上。而所谓的内核调度实体 KSE 就是指可以被操作系统内核调度器调度的对象实体,简单来说...原创 2020-05-05 19:57:52 · 778 阅读 · 0 评论 -
go base64 编码.md
文章目录两个默认的编/解码器:异常类 CorruptInputError编解码类 Encoding函数 NewEncoding方法 DecodedLen 返回n字节解码后字符串最大长度方法 Decode 解码到一个 []byte方法 DecodeString 数据为 string 类型,解码返回 []byte方法 EncodedLen 返回编码后的长度方法 EncodeToString 编码为...原创 2020-01-17 19:10:47 · 678 阅读 · 0 评论 -
go文件操作
https://studygolang.com/static/pkgdoc/pkg/os.htm#File文章目录文件对象 os.File函数 Create函数 Open函数 OpenFile函数 NewFile函数Pipe方法 Name方法 Stat 获取 文件信息方法 Fd 返回文件描述符方法 Chdir 改变当前目录为 f方法 Chmod 修改文件模式方法 Chown 修改文件的所属...原创 2020-01-15 17:40:54 · 482 阅读 · 0 评论 -
go 错误与异常及处理
https://www.jianshu.com/p/f30da01eea97文章目录错误与异常错误处理正确姿势1 失败的原因只有一个时,不使用error2 没有失败时,不使用error3 error应放在返回值类型列表的最后4 错误值统一定义5 错误逐层传递时,层层都加日志6 错误处理使用defer7 当尝试几次可以避免失败时,不要立即返回错误8 当上层函数不关心错误时,建议不返回error...转载 2020-01-15 15:26:43 · 1847 阅读 · 0 评论 -
go 正则表达式
文章目录将 正则表达式字符串 转义为普通字符串:检测字符串中是否含有匹配在 pattern 的子序列正则表达式对象 Regexp函数 Complie函数 CompliePOSIX函数 MustCompile函数 MustCompliePOSIX方法 String方法 LiteralPrefix方法 NumSubexp方法 SubexpNames方法 Longest方法 Match方法 MatchS...原创 2020-01-15 10:37:13 · 976 阅读 · 0 评论 -
go 语言方法与接口
###go 语言方法与接口go语言中没有类class的概念、没有对象object关键词、也没有继承(但可以使用组合来实现继承关系),但提供了接口的支持,可以使用接口来实现面向对象的一些特性。在go语言中结构体struct和其他面向对象语言中的class有同样的地位。结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型。每个变量都叫做结构体的成员。type user struct ...原创 2018-12-22 16:57:12 · 304 阅读 · 0 评论