摘要: 一,代码: // 入口函数 func main() { lock:=sync.Mutex{} go func() { lock.Lock() defer lock.Unlock() for i:=1; i<=5; i++ { time.Sleep(time.Millisecond) fmt.Prin 阅读全文
posted @ 2025-03-09 15:10 刘宏缔的架构森林 阅读(14) 评论(0) 推荐(0)
摘要: 一,代码: //实现单例的数据结构 type SingleObject struct { } //最终获得的单例对象 var instance *SingleObject //变量one是一个sync.Once的实例 var one sync.Once //方法:得到单例对象 func getIns 阅读全文
posted @ 2025-03-09 13:46 刘宏缔的架构森林 阅读(14) 评论(0) 推荐(0)
摘要: 一,代码: // 入口函数 func main() { //无缓冲的channel ch:=make(chan int) go func() { //<-ch for i:=1; i<=5; i++ { time.Sleep(time.Millisecond) fmt.Println(i) } ch 阅读全文
posted @ 2025-03-09 13:21 刘宏缔的架构森林 阅读(12) 评论(0) 推荐(0)
摘要: 一,代码: // 入口函数 func main() { ch:=make(chan int,1) go func() { <-ch for i:=1; i<=5; i++ { time.Sleep(time.Millisecond) fmt.Println(i) } }() go func() { 阅读全文
posted @ 2025-03-09 13:06 刘宏缔的架构森林 阅读(30) 评论(0) 推荐(0)
摘要: 一,怎么用channel实现锁定? 只有1个缓冲区的channel, 写入数据类似于加锁, 读出数据类似于释放锁 二,代码例子: // 入口函数 func main() { //创建channel对象 ch:=make(chan int,1) //协程1 go func() { ch <- 0 fo 阅读全文
posted @ 2025-03-09 12:54 刘宏缔的架构森林 阅读(17) 评论(0) 推荐(0)