← Back to context

Comment by lolpython

10 hours ago

Asking as an outsider to Go. How do you communicate between threads without a channel or mutex?

Wait groups do use concurency primitives underneath. My point is that the primitives that go provides are too easy to use incorrectly. And the language makes it hard to build nice abstraction on top of them. So I generally steer people away from using them unless strictly necessary, channels in particular.

A goroutins shares memory so you can just share variables if you want. It is basically the same as any other language in this regard.

  • It's also just as easy to incorrectly share memory and cause race conditions. There's no protection against it and it violates memory safety.

    • For sure. The parent comment was merely asking if it could be done without channels or mutex, not if it was a good idea or not. Of course sometimes it is indeed the right thing to do.