次の 3 つのメソッドを使用して、ある種の入力を解析しているとします。
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 つのプロセスをチャネルを使用して並列化したいと考えています。私のアイデアは、これらの関数にチャネルを渡して書き込みを行うことでしたが、チャネルに正しい順序で書き込むことを確認するにはどうすればよいですか? (つまり、本文はヘッダーの後にチャネルに書き込まれ、本文の後にフッターが書き込まれます)