分类 编程.Golang 中的文章

Golang | redis

概述 网上有很多golang操作redis的例子,我使用github.com/gomodule/redigo/redis包写一个关于redis分布式锁的问题。 redis分布式锁 锁需要的几个组件 获取锁 删除……

阅读全文

Golang | gomod拉取私有仓库

概述 在使用go mod的过程中,依赖的包往往是第三方库,当我们自定义一个包并且放在github.com私有仓库时候,按照原来的方法则会有如下问题。 get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go-get=1 verifying gitlab.com/xxx/zz@v0.0.1: gitlab.com/xxx/zz@v0.0.1: reading https://sum.golang.org/lookup/gitlab.com/xxx/zz@v0.0.1: 410 Gone 这个错误是因为新版本g……

阅读全文

Golang | 定时器

概述 golang有三种方式实现定时器: ticker timer select Ticker 通过 time.NewTicker(d)的方式实现定时器 d := time.Duration(time.Second * 2) t1 := time.NewTicker(d) defer t1.Stop() go func() { for { <- t1.C fmt.Println("NewTicker...") } }() Timer 通过 time.NewTimer(d)的方式实现定时器 t2 := time.NewTimer(d)……

阅读全文

Golang | JWT身份认证

概述 最近要在http接口上加一个token认证,但是接口很多,有没有一个省时省力的办法来解决。token的使用流程是: 用户使用帐号密码登陆到服务器1. 服务器验证登陆成功,根据帐号密码生成token。把……

阅读全文

Cgo | 遍历C结构体数组

缘由 现在有个应用场景,我们要在go中获取C结构体数组中的值。在C语言中,对于结构体数组,我们可以利用指针的偏移量来获取我们想要的值的位置。在go中我们怎么使用C指针和偏移量进行运算呢?下面的文字中C指……

阅读全文

Golang | sync.Mutex详解

概述 自己做的一个golang项目需要优化,优化方向是减少gpu内存的使用。同一个模型被重复加载多次,使用更多的gpu内存,也增加 sync.Mutex的使用。 优化的方向是: 减少代码量的改动- 减少gpu内……

阅读全文

Golang | 用gocolly登录B站

概述 gocolly是golang语言开发的爬虫包,通过gocolly来进行模拟网站的登录, 目标已经确立,开始行动。 下载 $ go get -u github.com/gocolly/colly 获取cookie 登录网站:https://www.bilibili.co……

阅读全文

Protobuf | 沾包问题

缘由 最近在研究一款游戏的源码。发现里面的通信协议是protobuf定义的,但还是自己定义了协议头部,类似 head + body。先解析头部里所存储的整个包的数据长度,然后再解析包剩余的数据,这样做的目的是为了防……

阅读全文