Practical Concurrency in Go - GoRoutines, Mutexes, Channels and more

แชร์
ฝัง

ความคิดเห็น • 24

  • @sigfaults
    @sigfaults  6 หลายเดือนก่อน +12

    Hey guys!
    The repo with the source code for this video is here: github.com/sigrdrifa/go-concurrency
    And my NVIM config is here: github.com/sigrdrifa/nvim

    • @rea_kr
      @rea_kr 6 หลายเดือนก่อน

      누나. 예뻐요.

    • @daveragos
      @daveragos 6 หลายเดือนก่อน +1

      pin it

  • @paveldroo
    @paveldroo 5 หลายเดือนก่อน +2

    Great content, just wanted to point out not entirely correct information about difference in buffered and unbuffered channels. They are not about unlimited and limited data, but about blocking/unblocking operations.
    Unbuffered channel sends one piece of data and current goroutine stops execution until another goroutine will read the data from the channel.
    On the other hand, buffered channel allows execution until channel becomes full (the capacity parameter in make() function). When buffered channel is full it behaves like unbuffered channel until some goroutine will read some data from it.
    Hope it was interesting for you. I’ve watched all your videos, good job!

  • @frankjansson7563
    @frankjansson7563 6 หลายเดือนก่อน +1

    I've been wanting to get started with Go these videos are really enjoyable. I enjoy your Non Go videos to. Keep spreading the joy of coding :)

  • @dejanduh2645
    @dejanduh2645 6 หลายเดือนก่อน +1

    This is the best practical example of concurrency in go I have ever seen. Great job, keep up 👍

  • @AnandKumar-dc2bf
    @AnandKumar-dc2bf 6 หลายเดือนก่อน +3

    Thanks for ur videos pls make more and more golang videos please.....

  • @v3ronez
    @v3ronez 6 หลายเดือนก่อน

    one of the bests videos about concurrency.

  • @baronbeans5001
    @baronbeans5001 6 หลายเดือนก่อน +3

    This was so helpful. Any chance you can do a video on context in go?

  • @vb_gh
    @vb_gh 5 หลายเดือนก่อน

    Thank you very much for making my requested video 🙏🏽. This is a good and clear real life use case.
    I would also like to ask for another video about what are the differences using json.Marshal or json.Unmarshal and json. Encoder or json.Decoder in go. I know they both are used to convert go types to json and vice versa. But I don't know why and where to use one over the other. A video with some vivid/concrete examples of why and where to use each or reply to this comment could help me understand. Thank you in advance 🙏🏽.

  • @manishbadgotra
    @manishbadgotra 6 หลายเดือนก่อน +1

    You really are a Good teacher 💯
    btw Love from India ❤

  • @codelinx
    @codelinx หลายเดือนก่อน

    What is this life you are so damn smart 👩‍💻… this is so helpful.

  • @DaaWood998
    @DaaWood998 2 หลายเดือนก่อน

    Very useful and insightufl video, thanks MAN 😏😏

  • @ninapryadko9306
    @ninapryadko9306 6 หลายเดือนก่อน +1

    Thank you so much, absolutely excellent

  • @liftingisfun2350
    @liftingisfun2350 หลายเดือนก่อน

    what are your thoughts on following a pattern like main uses a handler which uses a service which uses a repository?
    is layered architecture too much for go?

    • @sigfaults
      @sigfaults  หลายเดือนก่อน

      Hey, that's not unthinkable but I would be wary of using too many layers and it might become hard to follow. I normally have a more flat architecture where I inject things on the same level if that makes sense

  • @emersonjjsouza
    @emersonjjsouza 5 หลายเดือนก่อน

    Great examples, so helpful 😍

  • @GushchinAndrei
    @GushchinAndrei 3 หลายเดือนก่อน

    Excellent. Please keep doing

  • @nanonkay5669
    @nanonkay5669 5 หลายเดือนก่อน

    Honestly, it was all good until we got to worker pools. Then it was all confusing for me there after

  • @glepnir522
    @glepnir522 6 หลายเดือนก่อน

    😍😍😍😍

  • @georgecrisan9499
    @georgecrisan9499 5 หลายเดือนก่อน

    the example at 10:30 cannot be correct, the error is caused by the fact that there is no Currency item in the currencies map with key 'usd' at the time the go routine outside of the waiting group is running. If you add a 'usd' currency in the code above the error is gone and it prints the rates when it has the record whenever the thread has a chance to run.
    Also at 22:40 you say let's close the resultChan but the code below has close(currencyChan).
    The question is why closing only one? why not both or why any at all?