Concurrency in Go. Tools and Techniques for Developers - Helion
ISBN: 978-14-919-4130-0
stron: 238, Format: ebook
Data wydania: 2017-07-19
Księgarnia: Helion
Cena książki: 160,65 zł (poprzednio: 186,80 zł)
Oszczędzasz: 14% (-26,15 zł)
Concurrency can be notoriously difficult to get right, but fortunately, the Go open source programming language makes working with concurrency tractable and even easy. If you’re a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems.
Author Katherine Cox-Buday takes you step-by-step through the process. You’ll understand how Go chooses to model concurrency, what issues arise from this model, and how you can compose primitives within this model to solve problems. Learn the skills and tooling you need to confidently write and implement concurrent systems of any size.
- Understand how Go addresses fundamental problems that make concurrency difficult to do correctly
- Learn the key differences between concurrency and parallelism
- Dig into the syntax of Go’s memory synchronization primitives
- Form patterns with these primitives to write maintainable concurrent code
- Compose patterns into a series of practices that enable you to write large, distributed systems that scale
- Learn the sophistication behind goroutines and how Go’s runtime stitches everything together
Osoby które kupowały "Concurrency in Go. Tools and Techniques for Developers", wybierały także:
- Zosta 149,00 zł, (44,70 zł -70%)
- Metoda dziel i zwyci 89,00 zł, (26,70 zł -70%)
- Matematyka. Kurs video. Teoria dla programisty i data science 399,00 zł, (119,70 zł -70%)
- Design Thinking. Kurs video. My 129,00 zł, (38,70 zł -70%)
- Konwolucyjne sieci neuronowe. Kurs video. Tensorflow i Keras w rozpoznawaniu obraz 149,00 zł, (44,70 zł -70%)
Spis treści
Concurrency in Go. Tools and Techniques for Developers eBook -- spis treści
- Preface
- Who Should Read This Book
- Navigating This Book
- Online Resources
- Conventions Used in This Book
- Using Code Examples
- OReilly Safari
- How to Contact Us
- Acknowledgments
- 1. An Introduction to Concurrency
- Moores Law, Web Scale, and the Mess Were In
- Why Is Concurrency Hard?
- Race Conditions
- Atomicity
- Memory Access Synchronization
- Deadlocks, Livelocks, and Starvation
- Deadlock
- Livelock
- Starvation
- Determining Concurrency Safety
- Simplicity in the Face of Complexity
- 2. Modeling Your Code: Communicating Sequential Processes
- The Difference Between Concurrency and Parallelism
- What Is CSP?
- How This Helps You
- Gos Philosophy on Concurrency
- 3. Gos Concurrency Building Blocks
- Goroutines
- The sync Package
- WaitGroup
- Mutex and RWMutex
- Cond
- Once
- Pool
- Channels
- The select Statement
- The GOMAXPROCS Lever
- Conclusion
- 4. Concurrency Patterns in Go
- Confinement
- The for-select Loop
- Preventing Goroutine Leaks
- The or-channel
- Error Handling
- Pipelines
- Best Practices for Constructing Pipelines
- Some Handy Generators
- Fan-Out, Fan-In
- The or-done-channel
- The tee-channel
- The bridge-channel
- Queuing
- The context Package
- Summary
- 5. Concurrency at Scale
- Error Propagation
- Timeouts and Cancellation
- Heartbeats
- Replicated Requests
- Rate Limiting
- Healing Unhealthy Goroutines
- Summary
- 6. Goroutines and the Go Runtime
- Work Stealing
- Stealing Tasks or Continuations?
- Presenting All of This to the Developer
- Conclusion
- Work Stealing
- A. Appendix
- Anatomy of a Goroutine Error
- Race Detection
- pprof
- Index