![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
某热心知名群众
当程序员写出了一个对象
展开
-
并发中的select
select的执行顺序select语句不使用default分支时,处于阻塞状态直到其中一个channel的收/发操作准备就绪(或者channel关闭或者缓冲区有值),如果同时有多个channel的收/发操作准备就绪(或者channel关闭)则随机选择其中一个。select语句使用default分支时,处于非阻塞状态,从所有准备就绪(或者channel关闭或者缓冲区有值)的channel中随机选择其中一个,如果没有则执行default分支。严格来讲,select的实现包括两种顺序:一是:轮询顺序(p转载 2020-08-01 11:11:11 · 220 阅读 · 0 评论 -
并行统计文件目录总大小
统计一下给定目录下的文件目录大小知识点WaitGroup保证并行结束chan计算共享变量Mutex计算共享变量有缓存的chan控制并行协程数GOMAXPROCS控制并行cpu数方式1package mainimport ( "fmt" "io/ioutil" "os" "path/filepath" "runtime" "sync")var lock sync.Mutexfunc main() { runtime.GO原创 2020-06-20 00:08:57 · 152 阅读 · 0 评论 -
互斥锁Mutex和读写锁RWMutex区别
互斥锁和读写锁引用一下golang互斥锁和读写锁性能分析中关于互斥锁和读写锁的定义,比较清楚互斥锁1.互斥锁有两种操作,获取锁和释放锁2.当有一个goroutine获取了互斥锁后,任何goroutine都不可以获取互斥锁,只能等待这个goroutine将互斥锁释放3.互斥锁适用于读写操作数量差不多的情况4.读写都可以放入互斥锁中读写锁1.读写锁有四种操作 读上锁 读解锁 写上锁 写解锁2.写锁最多有一个,读锁可以有多个(最大个数据说和CPU个数有关)3.写锁的优先级高于读锁,这是因为为了原创 2020-06-16 11:02:24 · 1023 阅读 · 0 评论 -
常用数据结构类型(Golang版)
简介Golang中常用的数据类型如切片,哈希表等实现可能不能满足我们的日常需要,如具有有序性的TreeMap等;另外某些数据结构实现起来比较麻烦,如二叉堆Heap等;GoDS实现了各种各样的数据结构及匹配算法GoDS安装git clone https://github.com/emirpasic/gods.gitgods最后应在src相应的github.com目录下根接口type Container interface { Empty() bool Size() int Cle原创 2020-05-14 11:46:21 · 1739 阅读 · 0 评论 -
go的编译过程实例及go install/compile等命令
问题来源在用go get安装包时提出了一个这样的报错$ go install godscan't load package: package gods: cannot find package "gods" in any of:该报错提示我们不存在go文件;gods目录中确实也不包括go文件;那么这引出了问题,我们为什么要进行go install呢?程序编译的四步如C语言预编译编译汇编: 到这一步由高级语言→汇编语言→机器语言(二进制)→.o文件链接: 将上述翻译后的`.o``文件原创 2020-05-14 11:26:54 · 1424 阅读 · 0 评论 -
Golang学习笔记(二)
主要参考自http://c.biancheng.net/golang栈可用于内存分配,栈的分配和回收速度非常快。下面的代码展示了栈在内存分配上的作用:func calc(a, b int) int { var c int c = a * b var x int x = c * 10 return x}代码说明如下:第 1 行,传入 a、b 两...转载 2020-05-07 17:06:12 · 275 阅读 · 0 评论 -
Golang学习笔记(一)
比较杂,不包含基本语法,主要是①标准库的学习,参考自github和②一些进阶和坑长期更新map内的值由于是值类型,所以对结构体以及数组等需要取地址才可以修改,否则只读取初始化结构体时像引用类型初始化为nil,而像数组这样的初始化为每个都为0值,一直递归下去https://sanyuesha.com/2018/05/07/go-json/使用json进行传递,会将指针类型变为...转载 2020-05-07 17:00:53 · 1158 阅读 · 0 评论