28 条回复  ·  3202 次点击
jworg 小成 2025-2-24 12:42:08
可以用第三方库不,我脑子已经被 conc 惯坏了,只记得起 conc 的 WaitGroup , 系统的 WaitGroup 好像属于 sync 包。
langhuishan 小成 2025-2-24 12:43:11
golang 的精髓不就是并发吗?这都没掌握,等于没学
cooooing 初学 2025-2-24 12:43:52
@fruitmonster time sleep 只是降低出现这个问题的概率,并没有解决问题。如果操作是请求 api 或者其他耗时操作,要 sleep 多久?这种方式不好的,还是得 wait group 或者其他方式来同步
Vegetable 小成 2025-2-24 12:51:36
这种情况至少说明完全没做过需要 graceful shutdown 的程序,不能说判死刑,但至少对 go 不太了解吧
lasuar 小成 2025-2-24 13:09:39
可以说说招聘岗位要求几年经验,给多少薪资
zljklang 小成 2025-2-24 13:34:28
package main import "fmt" func main() { // 创建无缓冲通道 ch := make(chan int) // 发送方 goroutine go func() { for i := 0; i < 5; i++ { ch <- i // 顺序发送数字 } close(ch) // 发送完成后关闭通道[1,7](@ref) }() // 接收方 goroutine for num := range ch { fmt.Println("Received:", num) } } 这个对吗
givenge 小成 2025-2-24 13:42:04
天天发这些,不会是想转自媒体吧
opengps 初学 2025-2-24 13:47:58
对于你的状态来考他们不合格,那反过来他们提问题考验你你有信心通过吗? 单个问题并不能说明人的整体能力
hunterster 初学 2025-2-24 13:53:44
package main import ( "fmt" "sync" ) func writeData(c chan int, i int) { c <- i } func readData(c chan int) { for i := 0; i < 5; i++ { fmt.Println("The data is:", <-c) } } func main() { var wg sync.WaitGroup wg.Add(5) var c = make(chan int) for k := 1; k <= 5; k++ { go func() { defer wg.Done() writeData(c, k) }() } go readData(c) wg.Wait() close(c) }
codersdp1 小成 2025-2-24 13:57:35
这个确实属于 go 基础了,没掌握这些写并发功能肯定会出问题的。
返回顶部