An investigative walk through of Go's channels

By Gaurav Agarwal

Elevator Pitch

Have you ever wondered how Go’s channels work internally? Does the answer to make(chan int, 1) != make(chan int) keeps you up at night? If you would like to see behind the curtain then this talk is for you?

Description

Have you ever wondered how Go’s channels work internally? Does the answer to make(chan int, 1) != make(chan int) keeps you up at night? If you would like to see behind the curtain then this talk is for you? This talk deeps dive into the inner workings of Go’s channels using an interactive debugger to understand it’s strengths and shortcomings. If you are curious, like me, as to why there are two kinds of channels in Go and the difference in their behaviour, then this talk is for you.

Notes

Technical Requirements: An intermediate level of understanding of Go’s concurrency, have worked with channels and goroutines

I am probably the best person to speak on the subject cause of my curiosity and having worked with concurrency in Swift, Node.js, Rust, Erlang/Elixir, Clojure, Python and Ruby… I find Go’s concurrency model far superior and simple to use. This talk lifts the veil on the inner workings of Go’s channels, which every Go developer needs to be familiar with, but hardly anyone bothers to look under the hood.