1 回答

TA貢獻1772條經驗 獲得超5個贊
給 goroutines 一個內部 id,然后讓它們按順序相互調用。這可能如何工作的示例如下
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
var c [5]chan int
for i := range c {
c[i] = make(chan int)
wg.Add(1)
go func(id int) {
defer wg.Done()
f := <-c[id]
fmt.Println("called from ", f, ". My id ", id)
if id < 4 {
fmt.Println(id+1, " next")
c[id+1] <- id
}
fmt.Println("ending ", id)
}(i)
}
c[0] <- 99
wg.Wait()
fmt.Println("bye")
}
https://play.golang.org/p/psF8ISodJU_3
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報