Комментарии 1
Есть еще такая тема как backpressure (когда принимающая сторона говорит «горшочек, не вари», а передающая должна притормозить).
Насколько я понимаю, в Go и Reader, и Writer блокируют горутину до окончания операции, так что там должно быть все просто?
Если сравнивать с Node, то в Node аналогичная функциональность в stream-ах сделана просто кошмарно. Причина в том, что и чтение, и запись там неблокирующие, а когда это все проектировали, async-await еще не завезли (да и промисов, в общем-то, не было), поэтому для реализации backpressure используются жутчайшие костыли и стейт-машина на десяток состояний.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Стас Афанасьев. Juno. Pipelines на базе io.Reader/io.Writer. Часть 1