【发布时间】:2014-01-21 17:40:28
【问题描述】:
我一直在尝试使用渠道来构建某种生产者/消费者。我有一个requests 频道,许多生产者在其中推送请求,然后我有processRequests 处理这些请求。
package main
var requests chan string
func processRequests() {
for {
request <- requests
// Process request...
// And return response - how?
}
}
func main() {
requests = make(chan string)
go processRequests()
requests <- "doSomething"
requests <- "doSomethingElse"
requests <- "etc"
select {} // Block forever
}
我想知道的是,一旦请求得到满足,将响应发送回生产者(以及正确的,因为不止一个)的最佳方式是什么?基本上如何使它成为一个双向通道?
知道怎么做吗?
【问题讨论】:
-
Go 支持回调吗?
-
发送一个请求数据元组和您希望收到响应的通道
标签: go channel goroutine consumer producer