The following are very useful resources:
- Visit the documentation page of the sync package, which can be found at https://golang.org/pkg/sync/.
- Visit the documentation page of the context package, which can be found at https://golang.org/pkg/context/.
- You can learn more about the implementation of the Go scheduler by visiting https://golang.org/src/runtime/proc.go.
- You can find the documentation page of the atomic package at https://golang.org/pkg/sync/atomic/.
- You can view the design document of the Go scheduler at https://golang.org/s/go11sched.