From 6942db0a8e0d1b3931b1e7068b659cedbbf82ccd Mon Sep 17 00:00:00 2001 From: Sameer Ajmani Date: Thu, 8 Jan 2015 14:40:13 -0500 Subject: [PATCH] Initial version of LearnConcurrency. --- LearnConcurrency.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 LearnConcurrency.md diff --git a/LearnConcurrency.md b/LearnConcurrency.md new file mode 100644 index 00000000..078a7c63 --- /dev/null +++ b/LearnConcurrency.md @@ -0,0 +1,25 @@ +This page links to resources for learning about concurrency in Go. The items are presented in order, from beginner material to advanced topics. + +## Beginner +- Read [Effective Go: Concurrency](https://golang.org/doc/effective_go.html#concurrency) +- Study [The Go Programming Language Specification](https://golang.org/ref/spec), especially + - [Go statements](https://golang.org/ref/spec#Go_statements) + - [Channel types](https://golang.org/ref/spec#Channel_types) + - [Send statements](https://golang.org/ref/spec#Send_statements) + - [Receive operator](https://golang.org/ref/spec#Receive_operator) + - [Select statements](https://golang.org/ref/spec#Select_statements) +- Read [Share Memory By Communicating](http://blog.golang.org/share-memory-by-communicating) +- Read [Go Concurrency Patterns: Timing out, moving on](http://blog.golang.org/go-concurrency-patterns-timing-out-and) +- Watch [Concurrency is not Parallelism](http://talks.golang.org/2012/waza.slide#1) + +## Intermediate +- Watch [Go Concurrency Patterns](https://talks.golang.org/2012/concurrency.slide#1) +- Read [Go Concurrency Patterns: Pipelines and Cancellation](http://blog.golang.org/pipelines) +- Study [Package sync](https://golang.org/pkg/sync/) +- Read [Introducing the Go Race Detector](http://blog.golang.org/race-detector) + +## Advanced +- Watch [Advanced Go Concurrency Patterns](http://talks.golang.org/2013/advconc.slide#1) +- Read [Go Concurrency Patterns: Context](http://blog.golang.org/context) +- Study [The Go Memory Model](https://golang.org/ref/mem) +- Study [Package atomic](https://golang.org/pkg/sync/atomic/)