~/talk

Concurrency Patterns in Go

Talkat Golang UK 2017 · 2017-08-16..08-18· [go]
slides:none on file

Explains concrete concurrency rules and tradeoffs: CSP with channels and select handles about 90% of cases, showing fan-out/fan-in, closing semantics, and non‑blocking try-receive and timeout patterns. When channels fail, shows using mutexes for shared caches then stepping down to sync/atomic CAS spinning lock for tiny hot counters and a worked ticketed lock-free storage example that exposes ordering bugs and how to fix them with a done counter and careful atomic ops.

AI-written summary · about

  1. 0:00Intro
  2. 1:23Concurrency in detail
  3. 2:23Communicating Sequential Processes (CSP)
  4. 4:15Go's concurrency toolset
  5. 6:44Blocking channels
  6. 8:16Blocking breaks concurrency
  7. 9:08Closing channels
  8. 11:38Select
  9. 12:15Making channels non-blocking
  10. 13:49Shape your data flow
  11. 14:17Fan-out
  12. 15:10Turnout
  13. 16:11Quit channel
  14. 17:16Where channels fail
  15. 18:40Mutexes are not an optimal solution
  16. 19:47Three shades of code
  17. 20:45Atomic operations
  18. 22:02Spinning CAS
  19. 24:36Ticket storage
  20. 26:50Debugging non-blocking code
  21. 28:30Guidelines for non-blocking code
  22. 30:06Concurrency in practice
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.