同步通道?

假设我使用以下三种方法解析某种输入:


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个进程并行进行。我的想法是将通道传递给这些函数以供其写入,但是如何确保它们将以正确的顺序写入通道?(即,将正文写到正文之后的页眉和页脚之后的通道中)


慕的地10843
浏览 210回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go