Go Channels Concurrency

The cluster focuses on discussions about Go's channels and goroutines for concurrency, including their philosophy, advantages, limitations, best practices, and comparisons to alternatives like mutexes or other languages' approaches.

➡️ Stable 0.6x Programming Languages
2,249
Comments
20
Years Active
5
Top Authors
#9106
Topic ID

Activity Over Time

2007
2
2008
1
2009
17
2010
10
2011
22
2012
59
2013
194
2014
156
2015
164
2016
172
2017
146
2018
101
2019
119
2020
118
2021
168
2022
150
2023
230
2024
198
2025
217
2026
5

Keywords

ReadReady PyPy godoc.org conn.Read WriterTo jtolio.com OS NIF CSP golang.org channels goroutines channel concurrency select async signal implementation nil queues

Sample Comments

rakoo Jan 19, 2020 View on HN

Unless I'm mistaken you can already do that with go's channels

hoare Jun 10, 2015 View on HN

sounds alot like the golang channel "phylosophy":)

dingdingdang Apr 13, 2025 View on HN

If channels are the wrong way to do things in Golang, what is the right way?

kinjba11 Sep 22, 2021 View on HN

Channels are not always the best solution (unless you're referring to Rust channels?)https://www.jtolio.com/2016/03/go-channels-are-bad-and-you-s...

weberc2 Oct 5, 2017 View on HN

Channels require concurrency; you have to spin up another goroutine and take care not to let or deadlock. Channels are for communication between goroutines, not for general abstraction.

azinman2 Feb 3, 2017 View on HN

Isn't this what channels are for? Doesn't Go have this already built in?

gendoikari Dec 9, 2015 View on HN

What do you think about goroutines and channels?

avl999 Mar 15, 2022 View on HN

Avoid channels except for straight forward, producer-consumer workflows. Use mutexes and other traditional concurrency primitives for other stuff. Channels are a huge shotgun with caveats.

kubb Aug 17, 2022 View on HN

yes, channels and goroutines are a concept that doesn't transfer from C++ or Java :) good job pointing out the exception!

worg Feb 25, 2016 View on HN

"Or you can use channels, if you need a little more control." that means the guy doesn't even understand the `share memory by communicating` model of go