golang
一把把把把住了
梦想可能会迟到,但是他还有更大的几率缺席。
展开
-
【无标题】
golang实现排序算法原创 2022-10-24 14:24:14 · 264 阅读 · 1 评论 -
Golang 两个携程交替输出1-10
Golang 两个携程交替输出1-10百度搜索了一些相关话题,感觉不是很好所以自己写了一个。技术栈waitgroup主进程等待,context携程退出,chan通信。理论上有这三点基本都可以,不过感觉个人实现的还不是很完美,望各位指正~func Test4(t *testing.T) { s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} wg := sync.WaitGroup{} wg.Add(1) //注意这里为什么是1不是2:虽然是两个携程同时在原创 2022-04-13 15:48:49 · 741 阅读 · 0 评论 -
GoLang 里面阻塞挖的坑
GoLang 里面阻塞挖的坑1、写go程序的时候一定要牢记主线程不能阻塞,一旦阻塞就崩溃,就怕那种某种情况下偶尔会出现几下阻塞的,一定要杜绝。2、select case的执行顺序是乱的,不确定的3、写入管道的时候,一定要保证管道没有被阻塞写否则会崩溃,读取阻塞管道的时候关闭管道会读取到一个0值和一个false ok值4、go的make不能无节制的使用,虽然go有管理,但是也要克制,否则严重影响性能...原创 2020-12-26 00:14:00 · 221 阅读 · 0 评论 -
Golang map线程安全实现及sync.map使用及原理解析。
文章目录前言一、为什么map线程不安全?二、配合(锁)实现线程安全的map。1.悲观锁的形式2.乐观锁的形式3.根据map实现原理,对小范围进行加锁。三、sync.map实现的原理。1、sync.Map 的实现原理可概括为: 过 read 和 dirty 两个字段将读写分离,读的数据存在只读字段 read 上,将最新写入的数据则存在 dirty 字段上 读取时会先查询 read,不存在再查询 dirty.原创 2020-12-25 19:47:24 · 2076 阅读 · 0 评论