‹ BackHN Continuity

Thread

Go Concurrency Distilled

402 points · 187 comments · chmaynard

  1. SamInTheShell · · focus · HN ↗
    The concurrency and threading in Go just feels like magic compared to every other language. I'm a goroutine addict and I refuse to be rehabilitated.

    Just from observations over the years, I don't think there's any other language quite like this, in terms of how things can end up happening in any thread.

    1. tym0 · · focus · HN ↗
      We're heavy user of Go at work. Go also makes it way to easy to write bad concurrent code and hard to write good one.

      Stick to err/wait group and go routines and it's OK. Any PR with a channel or mutex I'll assume the author made a mistake.

      1. lolpython · · focus · HN ↗
        Asking as an outsider to Go. How do you communicate between threads without a channel or mutex?
        1. tym0 · · focus · HN ↗
          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.
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.