Пусть я разборе какой-то вход со следующими тремя способами:Синхронизированные каналы?
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 процесса параллельными, используя каналы. Моя идея заключалась в передаче канала этим функциям для записи, но как я могу убедиться, что они будут писать в правильном порядке на канал? (т.е., что тело записывается в канал после заголовка и колонтитула после тела)
Вы могли бы привести пример того, как я мог бы это сделать, используя 3 канала, пожалуйста? =), что было бы потрясающе. – thwd
OK, сделано. Очевидно, вы можете немного подправить это. Например, вы можете захотеть сохранить каналы в массиве. – snim2
Спасибо большое =] – thwd