
golang学习
番薯粉
这个作者很懒,什么都没留下…
展开
-
go数字和字符交替打印的实现
package mainimport ( "fmt" "sync")func main() { var resultchan=make(chan interface{}) var signchan=make(chan struct{}) var chartArr=[]string{"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}原创 2021-02-19 15:45:55 · 754 阅读 · 0 评论 -
利用快慢指针求链表的中值
思想:慢指针slow遍历列表时,faster指针速度是slow的两倍,则当快指针到结尾时(next节点为空),slow指针恰好位于链表中间中间。package mainimport ( "math/rand" "time" "fmt")func main() {原创 2018-09-13 20:25:09 · 428 阅读 · 1 评论 -
go条件变量sync.Cond的使用和思考
源码采用1.9版本;sync包的Cond,条件变量;在我看来,主要是采用他的wait()方法,来控制被阻塞的go程何时去竞争锁;我暂且叫它“双开关控制”(欢迎大神斧正): 废话少说,来个小例子吧:package mainimport ( "fmt" "sync" &原创 2018-09-04 16:50:10 · 5944 阅读 · 0 评论 -
go sync.Map使用和介绍
sync.Map使用和介绍首先看下该map的使用:_** package main import ( “sync” “fmt” )func main() { //开箱即用 var sm sync.Map //store 方法,添加元素 sm.Store(1,”a”) //Load 方法,获得value ...原创 2018-08-28 15:14:29 · 59957 阅读 · 3 评论 -
go版本protobuf 在windows系统下安装环境
1.下载protobuf的编译器protoc 2.下载protobuf编译器所需插件 访问https://github.com/google/protobuf/releases 下载 下载解压出protoc.exe文件放入gopath下的bin目录(当然你也看自定义); 下载protoc在go下运行所需插件: go get github.com/golang/protobuf(gopat原创 2017-11-22 17:22:38 · 2857 阅读 · 0 评论 -
用go的goroutine和channel实现一个简单的“生产、消费”(带有超时控制)小例子
直接上代码1、没有超时的时候package mainimport ( "fmt" "time")//消费func worker(jobChan <-chan int, endChan chan bool) { for job := range jobChan { fmt.Println("消费:", job) } //消费结束,通知end原创 2017-11-24 16:47:37 · 1992 阅读 · 0 评论 -
Go 关键字 defer 的一些坑你需要踩踩
Go 关键字 defer 的一些坑你需要踩踩 预览目录 一些结论 闭包与匿名函数 巩固一下 参考文档 什么是 defer?如何理解 defer 关键字?Go 中使用 defer 的一些坑。defer 意为延迟,在 golang 中用于延迟执行一个函数。它可以帮助我们处理容易忽略的问题,如资源释放、连接关闭等。但在实际使用过程中,有一些需要注意的地方(坑),下面转载 2017-08-28 10:57:04 · 507 阅读 · 0 评论 -
go sync包的读写锁RWMutex的使用
sync包的读写锁RWMutex的使用(sync.RWMutex) 当然我们使用读写锁的场景主要是在多线程的安全操作下,并且读大于写的时候,也就是说既满足多线程操作的安全性,也要保证性能的最大化利用,这时候,我们可以考虑使用读写锁。(当然你也可以简单暴力直接干互斥锁(Mutex))RWMutex的使用主要事项1、读锁的时候无需等待读锁的结束2、读锁的时候要等待写锁的结束3、写锁的时候要等原创 2017-11-16 19:01:58 · 5900 阅读 · 0 评论 -
go之defer,panic,recover用法
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2017-03-08 16:21:48 · 432 阅读 · 0 评论