【发布时间】:2016-08-04 13:46:25
【问题描述】:
我正在尝试在 goroutine 中创建一个“if”语句。 问题:如何从 10 变成 10?
var jr = make(chan int, 10)
var clients = 10 // The number of clients varies with time.
func rpcMethod(num int) {
time.Sleep(time.Duration(rand.Intn(int(time.Second))))
jr <- num
}
func postHandler(num int) {
// wait RPC data
for {
select {
case msg := <-jr:
{
if msg == num {
fmt.Println(num, "hello from", msg)
return
}
}
}
}
}
func main() {
for i := 0; i < clients; i++ {
go postHandler(i)
go rpcMethod(i)
}
fmt.Scanln()
}
结果 2/10
- 5 你好,来自 5
- 2 来自 2 的问候
【问题讨论】:
-
也许我做错了什么?我尝试在 Post 请求中传输数据 A1,并将它们处理给第三方服务,其答案将以 A2、B2 的形式出现。然后我比较 == A1 A2 并写在 Post B2 中。
标签: if-statement select go return goroutine