![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
爱全栈的工程师
路漫漫其修远兮,吾将上下而求索。
展开
-
解决Golang程序运行时占用内存不断增加的问题
日常开发时遇到了这样的问题:死循环程序打包为exe后执行exe文件,打开任务管理器,发现程序占用内存在不断增加。解决方式:删掉defer语句删掉fmt.Print语句提高性能循环语句中添加runtime.GC()回收垃圾...原创 2021-06-29 16:38:50 · 4848 阅读 · 3 评论 -
go使用redis——redigo使用HMSET存储结构体
话不多说,先放方法,再举例子。rc.Do("HMSET", redis.Args{key}.AddFlat(val)...)rc是什么?是一个连接,创建方式如下:var ( rc redis.Conn redisClient *redis.Pool)const REDIS_HOST = "127.0.0.1:xxxx"const REDIS_DB = "2"func initRedis() { redisClient = &redis.Pool{ Max原创 2021-05-20 18:00:10 · 2653 阅读 · 2 评论 -
golang使用redis——redigo安装
点此跳转Redigo工具包Github链接1. 方法1控制台输入下面命令,加载完即可使用。go get github.com/gomodule/redigo/redis2. 方法2文件中引入redigo依赖包。import github.com/gomodule/redigo/redis控制台输入,加载包。go mod tidy可以看到go.mod文件此时刷新了,引入了redigo包。此时就可以正常使用了。...原创 2021-05-20 17:39:53 · 560 阅读 · 0 评论 -
原子操作和杀死goroutine两种方法,解决多协程调用同一个函数的问题
1.使用sync和额外的变量errNum=0,errNum记录所有线程抛出的错误数量。在报错时进行sync同步处理,处理第一个goroutine的错误前,errNum加1,判断errNum的值,大于1则return结束函数,否则执行函数handleEr2.加锁。当一个线程访问到handleError()时,立马给handleError()加锁,禁止其他线程访问。但是很明显,加锁后一个线程处理完,依然要放另一个线程进来处理。除非直接杀死另一个线程。那么不如在调用handleError()之前就杀死多余进程。原创 2021-04-15 11:52:55 · 1092 阅读 · 0 评论 -
Golang实现Server和Client的TCP通讯
下面代码是我亲自写过测试过的,绝对有效!使用Golang分别构建Server端和Client端,并实现两者之间的TCP通讯。详细发送/接收/处理数据的代码要自己写,这里把通用的建立Server端和Client端连接的方法写一下。这里使用Golang net包来建立连接,建议先查看一下Golang标准库文档的net包,上面已经将通讯格式写的清清楚楚了。 Tips: 写Golang相关代码的时候多参考Golang标准库文档,你想要的应有尽有!原创 2021-04-15 10:58:45 · 756 阅读 · 0 评论