Каковы случаи использования для буферизованных каналов? Если я хочу несколько параллельных действий, я мог бы просто использовать стандартное, синхронное уравнение канала.Когда использовать буферный канал?
package main
import "fmt"
import "time"
func longLastingProcess(c chan string) {
time.Sleep(2000 * time.Millisecond)
c <- "tadaa"
}
func main() {
c := make(chan string)
go longLastingProcess(c)
go longLastingProcess(c)
go longLastingProcess(c)
fmt.Println(<- c)
}
Что бы практические случаи для увеличения размера буфера?
Эй, речь идет о сценариях реальной жизни для буферизованных каналов. Приведенный выше пример - это просто пример. – Dante
Использование буферизованных каналов в значительной степени зависит от выполняемой задачи. См. Обновленный ответ. – zzzz