golang 并发顺序输出数字
发布时间:2020-12-16 09:30:48 所属栏目:大数据 来源:网络整理
导读:参考 package mainimport ( "fmt" "sync/atomic" "time")func main() { var count uint32 trigger := func(i uint32,fn func()) { for { if n := atomic.LoadUint32(count); n == i { fn() atomic.AddUint32(count,1) break } time.Sleep(time.Nanosecond) }
参考 package main import ( "fmt" "sync/atomic" "time" ) func main() { var count uint32 trigger := func(i uint32,fn func()) { for { if n := atomic.LoadUint32(&count); n == i { fn() atomic.AddUint32(&count,1) break } time.Sleep(time.Nanosecond) } } for i := uint32(0); i < 10; i++ { go func(i uint32) { fn := func() { fmt.Println(i) } trigger(i,fn) }(i) } trigger(10,func() {}) } 踩坑点
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |