并发编程
已收录文章:6篇
-
一.序 单从库名大概就能猜出其作用。sync.Once使用起来很简单, 下面是一个简单的使用案例 package main import ( "fmt" "sync" ) func main() { var ( once sync.Once wg sync.WaitGroup ) for i := 0; i < 10; i+484 收藏
-
问题内容 在看官方的文档,文档里面有一段代码 var a string var done bool func setup() { a = "hello, world" done = true } func doprint() { if !done { once.Do(setup) } print(a) } func twoprint() { go dop482 收藏
-
最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰、代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go。 在go-zero中SingleFlight的作用是:将并发请求285 收藏
-
1. 什么是 Golang 通道 Golang 中的通道是一种高效、安全、灵活的并发机制,用于在并发环境下实现数据的同步和传递。通道提供了一个线程安全的队列,只允许一个 goroutine 进行读操作,另一个 go261 收藏
-
并发(concurrency): 指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,241 收藏
-
会发生竞态条件和数据竞争的场景有哪些 多个 goroutine 对同一变量进行读写操作。例如,多个 goroutine 同时对一个计数器变量进行增加操作。多个 goroutine 同时对同一数组、切片或映射进行读写232 收藏