Я читаю значения из канала в цикле следующим образом:
for {
capturedFrame := <-capturedFrameChan
remoteCopy(capturedFrame)
}
Чтобы сделать его более эффективным, я хотел бы прочитать эти значения в пакете с чем-то вроде этого (псевдокод):
for {
capturedFrames := <-capturedFrameChan
multipleRemoteCopy(capturedFrames)
}
Но я не уверен, как это сделать. Если я позвоню capturedFrames := <-capturedFrameChan
несколько раз, он заблокируется.
По сути, я хотел бы прочитать все доступные значения в captureFrameChan
и, если они недоступны, он блокируется, как обычно.
Как это сделать в Go?
multipleRemoteCopy
несколько раз, просто буферизируйте значения локально. - person Stephan Dollberg   schedule 25.10.2015