【发布时间】:2012-02-10 23:59:00
【问题描述】:
假设我正在使用以下三种方法解析某种输入:
func parseHeader ([]byte) []byte
func parseBody ([]byte) []byte
func parseFooter ([]byte) []byte
它们都解析相同输入的某个部分并将其返回为[]byte,因此它们可以这样使用:
i := []byte( /* the input */ )
b := new(bytes.Buffer)
b.Write(parseHeader(i))
b.Write(parseBody(i))
b.Write(parseFooter(i))
现在我想通过使用通道使这 3 个进程并行。我的想法是将通道传递给这些函数以供它们写入,但是 我如何确保它们会以正确的顺序写入通道?(即正文被写入通道 在页眉和页脚在正文之后)
【问题讨论】:
标签: synchronization go channel goroutine