Effective Concurrency in Go Develop, Analyze, and Troubleshoot High Performance Concurrent Applications with Ease /
Gain a deep understanding of concurrency and learn how to leverage concurrent algorithms to build high-throughput data processing applications, network servers and clients that scale. Key Features Learn about the Go concurrency primitives, Go memory model, and common concurrency patterns Develop the...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Publishing, Limited,
2023.
|
Edición: | 1st edition. |
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright and Credit
- Dedicated
- Contributors
- Table of Contents
- Preface
- Chapter 1: Concurrency
- A High-Level Overview
- Technical Requirements
- Concurrency and parallelism
- Shared memory versus message passing
- Atomicity, race, deadlocks, and starvation
- Summary
- Question
- Further reading
- Chapter 2: Go Concurrency Primitives
- Technical Requirements
- Goroutines
- Channels
- Mutex
- Wait groups
- Condition variables
- Summary
- Questions
- Chapter 3: The Go Memory Model
- Why a memory model is necessary
- The happened-before relationship between memory operations
- Synchronization characteristics of Go concurrency primitives
- Package initialization
- Goroutines
- Channels
- Mutexes
- Atomic memory operations
- Map, Once, and WaitGroup
- Summary
- Further reading
- Chapter 4: Some Well-Known Concurrency Problems
- Technical Requirements
- The producer-consumer problem
- The dining philosophers problem
- Rate limiting
- Summary
- Chapter 5: Worker Pools and Pipelines
- Technical Requirements
- Worker pools
- Pipelines, fan-out, and fan-in
- Asynchronous pipeline
- Fan-out/fan-in
- Fan-in with ordering
- Summary
- Questions
- Chapter 6: Error Handling
- Error handling
- Pipelines
- Servers
- Panics
- Summary
- Chapter 7: Timers and Tickers
- Technical Requirements
- Timers
- running something later
- Tickers
- running something periodically
- Heartbeats
- Summary
- Chapter 8: Handling Requests Concurrently
- Technical Requirements
- The context, cancelations, and timeouts
- Backend services
- Distributing work and collecting results
- Semaphores
- limiting concurrency
- Streaming data
- Dealing with multiple streams
- Summary
- Chapter 9: Atomic Memory Operations
- Technical Requirements
- Memory guarantees
- Compare and swap
- Practical uses of atomics
- Counters
- Heartbeat and progress meter
- Cancellations
- Detecting change
- Summary
- Chapter 10: Troubleshooting Concurrency Issues
- Technical Requirements
- Reading stack traces
- Detecting failures and healing
- Debugging anomalies
- Summary
- Further reading
- Index
- Other Books You May Enjoy