Hands-on Concurrency with Go

Hands-on Concurrency with Go

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 2h 33m | 375 MB

Build better software faster with concurrency in Go

This course presents you a hands-on look at creating concurrent and parallel programs using the Go programming language. From a blazing-fast garbage-collected memory model to effortless, lightweight Goroutines to speedy communication using in-memory channels, Go makes powerful concurrency primitives available which are unparalleled in other languages. This course provides you with both the theoretical and practical knowledge you will need to apply them to your own software.

This course covers the basics of concurrency and parallelism in Go, along with in-depth looks at the three types of concurrent and parallel program models and an introduction to concurrent architecture. This course will show you the multitude of tools available in Go for implementing concurrent systems, including goroutines, blocking channels, buffered channels, and non-blocking in-memory communication.You will build multiple concurrent applications and examine the benefits and drawbacks of the various concurrency options available.

By the end of the course, you will be able to rapidly and confidently identify concurrent and parallel problems and apply the Go language concurrency constructs to solve them.

This course uses concrete examples to demonstrate data parallelism, I/O concurrency, and concurrent architecture. You will build applications in Go to solve computational and communication problems from crunching numbers to serving up Web pages. Each section will start with a short introduction to the theory of the topic at hand followed by an in-depth demonstration of the advantages and disadvantages of using the Go language to solve a relevant problem.

What You Will Learn

  • Theory of concurrency and parallelism
  • How to use Goroutines to implement concurrent systems
  • The Go memory sharing model with channels
  • The importance of I/O concurrent design for high-performance software
  • How to improve performance by recognizing and exploiting inherent data parallelism
  • Techniques for improving your software’s architecture with the “gopher” model
  • Best practices for building concurrent systems in Go